1. ホーム
  2. regex

[解決済み] 一致した正規表現パターンを awk で表示するには?

2022-03-07 20:44:17

質問

使用方法 awk あるファイルから、正規表現にマッチする単語を見つけたいのですが。

I のみ パターンにマッチした単語を表示したい。

だから、行の中に、ある場合。

xxx yyy zzz

そしてパターン。

/yyy/

だけ取得したい。

yyy


EDIT おかげさまで クルミ なんとかこんな感じで書けました。

awk '{
        for(i=1; i<=NF; i++) {
                tmp=match($i, /[0-9]..?.?[^A-Za-z0-9]/)
                if(tmp) {
                        print $i
                }
        }
}' $1

これこそ私が必要としていたものです :) どうもありがとうございました!

どのように解決するのですか?

これは非常に基本的なことです。

awk '/pattern/{ print $0 }' file

頼む awk を検索する。 pattern を使って // この行はデフォルトではレコードと呼ばれ、$0 で示されます。 ドキュメント .

マッチした単語だけを印刷させたい場合。

awk '{for(i=1;i<=NF;i++){ if($i=="yyy"){print $i} } }' file