![猫ファイルの「KEYWORD」の後のすべての行[重複]](https://linux33.com/image/33267/%E7%8C%AB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%80%8CKEYWORD%E3%80%8D%E3%81%AE%E5%BE%8C%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E8%A1%8C%5B%E9%87%8D%E8%A4%87%5D.png)
n行に「KEYWORD」のファイルがあります。 n+1行から最後まですべての行を印刷するには?
たとえば、ここではpro = int行DDDとEEEのみが必要です。
AAA
BBB
CCC
KEYWORD
DDD
EEE
答え1
次の方法でこれを実行できますsed
。
sed '1,/^KEYWORD$/d'
これにより、ストリームの先頭から「KEYWORD」(含む)までのすべての行が削除(省略)されます。
答え2
別のオプションはgrep
フラグと一緒に使用することです-A
。
grep -A10000 KEYWORD file
ここでは、10000
ファイルの終わりまでの行数を示す大きな数字にすぎず、実際の日常的な使用には十分です。
それ以外の場合は、次のようにファイルの行数をパラメータとして使用できます。
grep -A$(wc -l file | cut -d' ' -f1) KEYWORD file
しかし、これは過剰である可能性が高いです(与えられた選択肢よりも覚えやすくありませんsed
)。
答え3
sedを使用してKEYWORD一致からファイルの終わりまで印刷し、tailを使用してKEYWORD行を削除します。
sed -n '/KEYWORD/,$p' file | tail -1