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

OKWave 2007年10月31日 14時00分

  • このエントリーをはてなブックマークに追加
awkやsed等で特定の文字間を抜き出す

cat text
aaaa
bbbb
<AAA>
ccc
ddd
<BBB>
eee

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

良回答

sed なら


sed -ne '/<AAA>/,/<BBB>/p'

awk なら


awk '/<AAA>/,/<BBB>/{print}'

ついでに perl なら


perl -ne 'print if /<AAA>/ .. /<BBB>/'
回答

awk '
flag == 1 || $1 == "<AAA>" {
print;
flag = 1
}
$1 == "<BBB>" {
flag = 2
next;
}'
  • このエントリーをはてなブックマークに追加
関連キーワード
OS

SpecialPR

  • デジタル変革か?ゲームセットか?

    デジタルを駆使する破壊的なプレーヤーの出現、既存のビジネスモデルで競争力を持つプレイヤーはデジタル活用による変革が迫られている。これを読めばデジタル変革の全体像がわかる!

  • ビジネスの継続的な成長を促す新たなITのビジョン

    多くの企業においてITに求められる役割が、「守り」のコスト削減から「攻め」のビジネス貢献へとシフトしつつある。その中でIBMが提唱する新たなビジョンEnterprise Hybrid ITとは?