• ベストアンサー

awkやsed等で特定の文字間を抜き出す

cat text aaaa bbbb <AAA> ccc ddd <BBB> eee とあるときに <AAA> ccc ddd <BBB> だけ抜き出したいです。 どのようにすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

sed なら sed -ne '/<AAA>/,/<BBB>/p' awk なら awk '/<AAA>/,/<BBB>/{print}' ついでに perl なら perl -ne 'print if /<AAA>/ .. /<BBB>/'

その他の回答 (3)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

#3 です. sed や awk に対応させるなら, Perl の例は perl -ne 'print if /<AAA>/ ... /<BBB>/' の方がよかったかな.

nya1221
質問者

お礼

ありがとうございます! うまくいきました。

  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.2

awk ' flag == 1 || $1 == "<AAA>" { print; flag = 1 } $1 == "<BBB>" { flag = 2 next; }'

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

関連するQ&A