スポンサーリンク
awkで正規表現にマッチした文字列を抽出して表示
※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-
参考:awk入門-使い方まとめ一覧-
match()関数で正規表現にマッチさせると、RSTARTには、検索対象が検出された最初の位置が、
RLENGTHには、検索対象が検索された文字列の長さが格納されます。
substr()で位置と長さを指定して文字列を抽出して、あとはprint表示させます。
参考:match()関数とsubstr()関数で文字列を切り出す
例えば、下記のin.txtがあったとします。
$ cat in.txt awkfind0123456789awk 1234567890awk1234567890
下記がサンプルコードになります。
$ cat sample.awk #!/bin/sh cat in.txt | awk ' { match($0, /[1-9]+/) print substr($0, RSTART, RLENGTH) match($0, /[a-z]+/) print substr($0, RSTART, RLENGTH) } '
下記が実行結果になります。
$ ./sample.awk 123456789 awkfind 123456789 awk
スポンサーリンク