2015年1月15日木曜日

[awk]正規表現

match() を使うことで正規表現を使用できる。 test04.awk
BEGIN {
}

# 先頭が数字の行だけを表示する
{
 # if ($1 ~ /^[0-9]/) {
 # これを使うと buffer: と表示される
 if (match($1, /^[0-9]/)) {
  print $0
 }
}

END {

}
test.csv
This is test.

1,dog,10,20
2,cat,500,200
3,dog,40,20
4,cat,10,500
実行結果
> awk -f test04.awk test.csv
1,dog,10,20
2,cat,500,200
3,dog,40,20
4,cat,10,500
match() ではなく ($1 ~ /^[0-9]) を使った場合、buffer と表示される。
> awk -f test04.awk test.csv
buffer: T
buffer: 1
1,dog,10,20
buffer: 2
2,cat,500,200
buffer: 3
3,dog,40,20
buffer: 4
4,cat,10,500

0 件のコメント:

コメントを投稿