grep は前の行と一致するものと一致します。

grep は前の行と一致するものと一致します。
zzzzzzzzz
aaaaaaaaa
bbbbbbbbb &
ccccccccc &
ddddddddd
hhhhhhhhh
eeeeeeeee
fffffffff &
ggggggggg &

上記の行で私が望むのは、grep// sedawkすべてのメソッドが可能です)署名された&行と上記の行です。たとえば、希望の出力は次のようになります。

aaaaaaaaa
bbbbbbbbb &
ccccccccc &
eeeeeeeee
fffffffff &
ggggggggg &

私が幸運に試したことは次のとおりです。

egrep "&" | -b 1 file.txt

ベストアンサー1

あなたはできます:

grep -B 1 '&$' your_file

次に、次に終わる行を見つけて&削除し、その中のどこでも行を$一致させます&

この-Bスイッチは、grep一致する行の前に「コンテキスト」行を出力するように指示します。この場合、コンテキストラインが必要なので必要があります-B 1

このスイッチは GNU では使用できますが、grepPOSIX 標準では使用できません。

sedGNUがない場合に役立つ簡単な解決策は次のとおりですgrep

sed -n '/&/!N;/&/p' your_file

どのように動作しますか?

  • この-nスイッチは基本的な「印刷」操作を抑制します。sed
  • /&/!N意味:現在の行にその行がない場合は、&パターンスペースに次の行を追加します。
  • /&/p意味:&パターンスペースを一致させて印刷します。

おすすめ記事