選択した行の Grep パターン

選択した行の Grep パターン

pattern 1次の行にが含まれてpattern 2いて始まる場合にのみ行を含めるにはどうすればよいですかpattern 3

例:A次の行がaで始まり、パターンが含まれている場合にのみ、Banで始まる行を保持します。B1

入力ファイル

A   item1A
B   item1B2
A   item2A
A   item3A
B   item3B1
B   item3CB1
B   item3B2
A   item5A
B   item5B1
A   item6A

予想出力:

A   item3A
B   item3B1
B   item3CB1
A   item5A
B   item5B1

(現在試行中ですがs行がすべて保存されるgrep -e ^A -e B1副作用があります)A

ベストアンサー1

そしてpcregrep

pcregrep -M '^(A.*\n)?B.*B1'

そしてawk

awk '
  /^B.*B1/ {if (p && last ~ /^A/) print last; print; p=0; next}
  {p=1; last=$0}'

おすすめ記事