不经常用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}'
阅读(583) | 评论(0) | 转发(0) |