awk [ -F field-separator ] 'commands' input-files
1. field separator:
awk -F: '{print $0}' input.txt
2. commands:
选择字段输出:
awk '{print $1, $4}' input.txt
输出抬头:
awk 'BEGIN {print "ID Name\n ------------ \n"} {print $1"\t"$4} input.txt
在命令序列[]前为行模式匹配,匹配则执行此命令
3. 条件操作符
'~':匹配正则表达式
awk '{if ($4~/Brown/) print $0}' input.txt #第4个字段包含Brown
'==':精确匹配表达式
awk '{if ($4==/Brown/} print $0}' input.txt #第4个字段为Brown
'!~':不匹配
awk '{if ($4!~/Brown/} print $0}' input.txt #第4个字段不包含Brown
'AND'
awk '{if ($1=="ABC" && $4~/Brown/) print $0}' input.txt
4. 内置变量
ARGC, ARGV, FILENAME,
FNR:浏览文件的记录数
NF: 浏览记录的字段数目
NR: 已读记录数
5. 变量使用
awk '{id=$1; name=$2; if(name~/Brown/) print name"\'s ID is "id}' input.txt
输出为 BrownABC's ID is 123
6. 数值字段的修改
awk '{if($2==/Brown/) $1=12; print $1, $2}' input.txt
7. 文本字段的修改
awk '{if($1==12) ($2="Brown"); print $1, $2}' input.txt
阅读(523) | 评论(0) | 转发(0) |