简述:
awk用于文本处理
常用参数:
-F 指定分隔符
-v 指定变量
$NF 表示最后一个字段
NR 表示第几行
&& 与
|| 或
$0 整行
OFS 输出字段分隔符
1...N 第一个到第N个字段
例子:
1、输出1.txt文件的第一列,默认按空格分隔
awk -F {print $1} 1.txt
2、输出1.txt文件的第一列和第二列,按,分隔
awk -F, {print $1,$2} 1.txt
3、输出1.txt文件的最后一行的最后一个字段,按:分隔
tail -1 1.txt | awk -F ":" '{print $NF}'
4、输出第十行的内容
awk NF==10'{print $0}' 1.txt
5、给a赋值1,让a与第一个字段相加,然后输出第一行
awk -v "a=1" '{a+=$1;print $1}' 1.txt | head -1
6、按:分隔,输出1.txt文件的第一、第二列,以 - 连接
awk -F ":" '{OFS=-;print $1,$2}' 1.txt
优先级参数:
BEGIN 最高优先级
END 最低优先级
例子:
1、输出hello
awk 'END{print "hello"}'
2、输出a、b
awk 'BEGIN{a="hello",b="world";print a,b}'
3、将1.txt文件的第一列相加
awk -v "a=0" 'a+=$1END{print a}' 1.txt
判断控制流
if 判断
while 循环
for 循环
do...while 循环
break 提出循环
例子:
1、判断1.txt中如果$1大于10,输出$1,否则输出$2
awk ‘{if($1>10)print $1;else print $2}’ 1.txt
2、循环输出1~10
awk 'BEGIN{i=1;while(i<11){print i;i++}}'