この質問は何度も尋ねられていますが、回答はすべてGNU sed特有のものです。BSD/OS Xでs行目のX行を削除/削除する方法
sed -i '' "/${FIND}/,+2d" "$FILE"
"期待されるコンテキストアドレス" エラーを与えます。
BSD sedを使ってX行を削除したり、X行を削除したりする方法を例を挙げて教えてください。
この質問は何度も尋ねられていますが、回答はすべてGNU sed特有のものです。BSD/OS Xでs行目のX行を削除/削除する方法
sed -i '' "/${FIND}/,+2d" "$FILE"
"期待されるコンテキストアドレス" エラーを与えます。
BSD sedを使ってX行を削除したり、X行を削除したりする方法を例を挙げて教えてください。
次sed
編集スクリプト(-n
で実行)はGNU sed
/^pattern/,+2d
が何をエミュレートします:
/^pattern/{
n
n
d
}
p
/^pattern/
を照合すると、それは入力の次の2行を読み、[すべてを破棄します(再起動しますサイクル)。パターンが一致しない場合は、行が印刷されます。
これは単にsedの仕事ではなく、awkの仕事です。
$ seq 5 | awk '/3/{c=2} !(c&&c--)'
1
2
5
変数c
をスキップしたい行に設定するだけです。