web-dev-qa-db-ja.com

「KEYWORD」の後にあるファイルのすべての行をキャットする

行番号nに「キーワード」があるファイルがあります。 n + 1行目から最後まですべての行を印刷するにはどうすればよいですか?

たとえば、ここでは、DDDとEEEの行のみをpro = intに置き換えます。

AAA
BBB
CCC
KEYWORD
DDD
EEE
14
user1968963

sedでこれを行うことができます:

sed '1,/^KEYWORD$/d'

これにより、ストリームの先頭から「KEYWORD」までのすべての行が削除(省略)されます。

21
Chris Down

Sedを使用して、KEYWORD一致からファイルの最後まで印刷し、次にtailを使用してKEYWORD行を削除します。

sed -n '/KEYWORD/,$p' file | tail -1
3
suspectus

代替案は、-Aフラグと組み合わせたgrepです。

grep -A10000 KEYWORD file

ここで、10000は、ファイルの終わりまでの行数を示す大きな数字であり、実際の日常使用にはこれで十分です。

それ以外の場合は、このようにファイルの行数をパラメータとして使用できます

grep -A$(wc -l file | cut -d' ' -f1) KEYWORD file

しかし、それはやり過ぎである可能性が最も高いです(そして、与えられたsed代替より覚えるのは簡単ではありません)

2
Bernhard