編集部からのお知らせ
「半導体動向」記事まとめ
「リスキリング」に関する記事まとめ

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があると
空文字列が出力されます。
それでいいというならまあいいですけど。

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

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

特集

CIO

モバイル

セキュリティ

スペシャル

ホワイトペーパー

新着

ランキング

  1. 開発

    なぜ、コンテナー技術を使うことで、ビジネスチャンスを逃さないアプリ開発が可能になるのか?

  2. セキュリティ

    2022年、セキュリティトレンドと最新テクノロジーについて、リーダーが知っておくべきこと

  3. ビジネスアプリケーション

    全国1,800人のアンケートから見えてきた、日本企業におけるデータ活用の現実と課題に迫る

  4. 運用管理

    データドリブン企業への変革を支える4要素と「AI・データ活用の民主化」に欠かせないテクノロジー

  5. 経営

    テレワーク化が浮き彫りにしたリソース管理の重要性、JALのPCセットアップを支えたソフトウエア

NEWSLETTERS

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

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

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