Chinaunix首页 | 论坛 | 博客
  • 博客访问: 31986
  • 博文数量: 9
  • 博客积分: 265
  • 博客等级: 二等列兵
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-26 16:20
文章分类
文章存档

2020年(1)

2017年(2)

2016年(1)

2010年(5)

我的朋友

分类: LINUX

2010-06-04 10:14:40

不经常用awk这个工具,每次用的时候都需要查些资料(鸟哥),今天自己在这儿记录下简单用法.
awk:相对于sed,awk处理的针对每一行中的列。

用法:awk ' 条件1 {} 条件2 {} '

默认变量:
$0  : 代表正行数据
$1  : 第一列
$2  : 第二列 同理$3,$4......
NF : 当前行有多少列
NR:代表第几行
FS :当前分割符,默认为空格

例子:
1、获取/etc/passwd内第1列和第3列, 并且第三列小于10
cat /etc/passwd | awk ' BEGIN {FS=":"}  $3 < 10 {print $1 "\t" $3}'
2 计算工资总和
name 1st 2st 3st
april 123 456 789
cat pay.txt | awk ' NR == 1  {printf "%10s %10s %10s %10s %10s" , $1, $2, $3, $4, "total"}
NR >=2 {total = $2+$3+$4
printf "%10s %10s %10s %10s %10s" , $1, $2, $3, $4, total}'

阅读(557) | 评论(0) | 转发(0) |
0

上一篇:od

下一篇:open和sys_open是怎么联系上的

给主人留下些什么吧!~~