gsub()を組み合わせて、特定の文字列以降を抽出する
gsub()で、先頭からマッチした文字列までを残すように置換します。
参考:awkのsub()で文字列置換する
例えば、下記の文字列の場合は、先頭からawkの文字列をawkに置換します。
すると、awkより前の文字列が削除されます。
awk以降の文字列が残ることになります。
1awkfind
gsub()を使うと、下記のように書けます。
sub(/.*awk/, "awk", $2)
サンプルコード
例えば、下記のin.txtがあったとします。
$ cat in.txt 2018,1awkfind 2019,2awkls 2020,3awkgrep
下記がサンプルコードになります。
$ cat sample.awk
#!/bin/sh
cat in.txt | awk '
BEGIN{
FS = ","
}
{
sub(/.*awk/, "awk", $2)
print $2
}
'
下記が実行結果になります。
$ ./sample.awk awkfind awkls awkgrep
