sed + 一致する2つのパターンの間のすべての行を削除し、代わりに x=yes という単語を追加します。

sed + 一致する2つのパターンの間のすべての行を削除し、代わりに x=yes という単語を追加します。

スクリプトの例はこちら

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テキストを追加するには、ppend コマンドを使用します。

sed -e '/^cat <<EOF | more/ax=yes' -e '//,/^\read x/d' 

少なくとも GNU ではsed、行自体が削除されても実行されます。 一度だけ追加したいので、 の最初のアドレスaと の範囲を使用しますd。空の式は、前の式を繰り返します。

関連情報