Chinaunix首页 | 论坛 | 博客
  • 博客访问: 470119
  • 博文数量: 143
  • 博客积分: 6159
  • 博客等级: 准将
  • 技术积分: 1667
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-25 23:08
文章分类

全部博文(143)

文章存档

2013年(1)

2012年(11)

2011年(55)

2010年(76)

分类:

2010-10-01 13:36:17

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) |
给主人留下些什么吧!~~