awkで一つマッチしたら終了させる

OKWave 2007年10月24日 14時00分

  • このエントリーをはてなブックマークに追加
awkで一つマッチしたら終了させる

echo $var | awk '{ 
for (i = 0; i < NF; i++) {
if ($i == "AAA") {
j = i+1; print $j ; exit; 
} 
}
}'

として変数1"$var"から"AAA"という文字列を抜き出しているのですが
$varに二個以上のAAAが存在するときに
一つめのAAAとマッチしたら終了としたいのです
どの用にしたらよいでしょうか?
ご教授お願いします。

良回答

>>とかあったら、どんな出力が欲しいのでしょうか?
>BBBです。

であるなら、今のスクリプトでできてませんか?
少なくともわたしが試したところではBBBが
でてきましたけど。

補足の内容から判断すると、
>"AAA"という文字列を抜き出しているのですが
じゃなくて、AAAを鍵にしてその次にくる
フィールドを抜き出してますよね。

なら for ループは
for (i=1; i でしょう。
<=NFだと、最終フィールドにAAAがあると
空文字列が出力されます。
それでいいというならまあいいですけど。

で、うまくいかないパターンがあるなら、それを提示してもらえませんか?

  • このエントリーをはてなブックマークに追加
関連キーワード
OS

SpecialPR

  • 「奉行シリーズ」の電話サポート革命!活用事例をご紹介

    「ナビダイヤル」の「トラフィックレポート」を利用したことで着信前のコール数や
    離脱数など、コールセンターのパフォーマンスをリアルタイムに把握するに成功。詳細はこちらから

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

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