dポイントプレゼントキャンペーン実施中!

件名にあるように
awkを用いて、特定の文字を含む以下の行を抜き出したいのですが
どのようにしたらよいでしょうか?

具体的には
#cat text
aaaa
bbb ccc
<exe> aa
xxxxx vvvv
・・・

というようなファイルtextがあるとき
<exe> 以下の行すべてを抜き出したいです。
ご教授お願いします。

A 回答 (5件)

awk '/<exe>/,0' text



でいけるかと。
<exe> が第一フィールドにあるときだけとかいう
条件があるなら

awk '$1~/<exe>/,0' text
    • good
    • 0
この回答へのお礼

全部うまくいきました。
みなさまありがとうございます。
自分の勉強不足を痛感いたしました。

お礼日時:2007/10/05 17:39

正規表現でチェックしたいのか、第一トークンが「とある文字列」と完全一致なのかで違いますが、他の方の冗長な部分を除くと、


awk '$1=="<exe>"{flag=1}flag{print}'
awk '/<exe>/{flag=1}flag{print}'

正規表現なら、#3さんがお書きの sed が良いでしょう。
    • good
    • 0

awk にこだわらないなら


sed -ne '/<exe>/,$p' text
でいいんだけどねぇ.
    • good
    • 3

好みの問題ですが、


awk '
BEGIN {
flag=0;
}
flag {
print;
next;
}
$1 == "<exe>" {
print;
flag=1;
}'
    • good
    • 0

awk 'BEGIN{ flg=0 }; { if(flg > 0) print; else if($1=="<exe>") {flg=1; print} };'



少々手抜きしましたが使えるでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!