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;
}'

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

注目している大規模言語モデル(LLM)を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]