GNU/Linux >> Linux の 問題 >  >> Linux

特定の単語をgrepしてテキストを取得する方法

-B1 を使用できます 前の行も印刷し、最初の行だけを取得するには:

$ grep -B1 'Minion' ip.txt
T5F6Z12:
   Minion did not return. [Not connected]
$ grep -B1 'Minion' ip.txt | head -n1
T5F6Z12:

または、awk で実行します :

$ awk '/Minion/{print p} {p=$0}' ip.txt
T5F6Z12:
$ awk '/Minion/{sub(/:$/, "", p); print p} {p=$0}' ip.txt
T5F6Z12

こちら p 最後の行を保存し続けます。入力行に Minion が含まれる場合 、それから印刷されます。 grep とは異なり、これは複数の一致に対して機能することに注意してください 上記のソリューションでは、最初の一致のみが得られます。


grep に縛られている場合 その後、複数行の一致を維持できます ...

ファイル:

T5F6Z12:
   Minion did not return. [Not connected]
T5F6Z11:
   Pinion did return. [connected]
T5F6Z10:
   Minion did not return. [Not connected]

使用

grep -B 1 "Minion" file | grep ":$"
T5F6Z12:
T5F6Z10:

sed が使える場合 それから、私が以下で盗用した答えがここU&Lにあります

sed -n '/Minion/{x;p;d;}; x' file
T5F6Z12:
T5F6Z10:

Linux
  1. Grepコマンドを使用してファイル内のテキストを検索する方法

  2. Linux –特定の単語をgrepしてテキストを取得する方法は?

  3. パテにコピーアンドペーストする方法

  1. 自動化のためにAnsibleとanacronを使用する方法

  2. Grep –recursiveを使用して、「不要な」および「必要な」単語を含む特定の行を除外するにはどうすればよいですか?

  3. Linux で特定のテキストを含むすべてのファイルを見つけるにはどうすればよいですか?

  1. Linux で GREP を使用して特定のテキストを検索する方法

  2. カスタム ポートとテキスト ファイルに Wireshark tshark コマンドを使用する方法

  3. Linux で単語を検索し、行全体を表示する