以下はサンプルスクリプトです。
一致する2つのパターンの間で正常に削除した場合(最初のパターンはでcat <<EOF | more
、2番目のパターンはread x
)
スクリプト
#!/bin/sh
cat <<EOF | more
.
.
.
.
EOF
echo -n "Do you agree with the License? [yes/no] "
read x
.
.
.
私のsedコマンド
sed -i '/^cat <<EOF | more/,/^\read x/d' test.sh
上記のように、削除されたすべての行を挿入するためにx = yesパラメータを追加するsed機能を追加したいと思います。
sedコマンドにこの機能を追加できますか?
予想結果の例
#!/bin/sh
x=yes
答え1
a
pendコマンドを使用してテキストを追加できます。
sed -e '/^cat <<EOF | more/ax=yes' -e '//,/^\read x/d'
少なくともGNUでは、sed
行自体が削除されても実行されます。一度だけ追加したいので、最初のアドレスa
と範囲のみを使用してくださいd
。空の式は前の式を繰り返します。