100行のファイルがあり、「ハッピー」という単語を検索する必要がありますが、検索はファイルの50行から始める必要があります。 Linuxで使用される特定のgrepコマンドは何ですか?
答え1
head
+grep
とグループコマンドを使用して{...}
同じ入力を共有することもできます。
{ head -n 50 >/dev/null; grep PATTERN; } <infile
この方法はhead
最初のn
行のみをインポートしてダンプし、残りの/dev/null
行は処理されますgrep
。
答え2
以下は、sed
50行目からファイルの終わりまで移動し、それを使用してgrep
パターンを検索する方法です。
sed -n '50,$p' file.txt | grep "happy"
または、sed
正確に以下を使用してください。
sed -n '50,$s/happy/&/p' file.txt
以下はいくつかの追加sed
方法です(「Stéphane Chazelas」に感謝します)。
sed '50,$!d;/happy/!d' file.txt
sed -n '50,${/happy/p;}' file.txt
答え3
tail
51行目から始めてファイルの内容を取得するために使用されますgrep
。-i
大文字と小文字を無視して(「Happy」、「HAPPY」なども一致させることができます)、前にスペースを追加して「happy」のみを一致させ、その文字シーケンスを含む他の単語を一致させないために使用します。
tail -n +51 filename.txt | grep -i " happy"
答え4
必要になりますawk
:
awk 'NR>50' filename.txt | grep '\bhappy\b'