Sed:最初のn行の間に与えられた文字列を含む行を削除します。

Sed:最初のn行の間に与えられた文字列を含む行を削除します。

私は文字列とファイルを受け取りました。最初の30行の間に指定された文字列を含む行を削除する必要があります。次のようなことを試しました。sed -i '/pattern/1,30d' filename しかし、エラーが発生します。具体的には、私が望むのは、sedが最初の30行だけを分析し、与えられたパターンが見つかったらその行を削除することです。

ベストアンサー1

少なくともGNU sedを使うと可能です。

sed '1,30{/pattern/d}' file

縮小テスト:次fileのように提供されます。

some line
pattern
other line
some line
pattern
other line

それから

$ sed '1,3{/pattern/d}' file
some line
other line
some line
pattern
other line

おすすめ記事