Linux awk 使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux awk 使用相关的知识,希望对你有一定的参考价值。
1、awk读入第一行内容
2、判断是否符合模式中的条件NR<3
如果匹配,则执行对应的动作print NR $1
如果不匹配,继续读下一行
3、继续读下一行
4、直到读到最后一行
默认情况:一行就是一个记录,当然如果修改也行分隔符就不一样了。
内置变量:
正则表达式:
运算符:
其实在awk看来,文件从头到尾一段连续的字符串,只是中间有一些\n(回车换行符),RS为了
方便人查看,就把RS值设置为\n,当然可以人为修改,如上图
+表示:多个一样的,例如多个空格
两种写法
这个区别在哪??? 为什么显示不同,大神来解答下。。。
当然-F后面[],可加可不加,如果就以一个分隔符的话
x重复m次 /cool{5}/
x重复至少m次 /cool{2,}/
x重复至少m次,但不超过n次 /cool{m,n}/
注意:cool加不加括号
/cool{5}/ 表示coo再加上5个l,coolllll
/(cool){5}/ 表示cool匹配5个,cool cool cool cool cool
以上必须要加参数--posix或者--re-interval
首先以“:”号分隔字段,再查找第一个字段符合字符”o”出现至少一次,不超过2次的,最后
打印行号,第一个字段,最后一次字段。
取反!~
1、首先以“:”号,分隔字段,然后同时满足行号=1,且第一个字段中包含的字符”o”出现至少一次,
不超过2次的,打印行号,第一个字段
2、行号1或者行号2,打印第一个字段。
范围从第1行到第3行
awk不能直接使用行号作为范围,因为awk具有内置变量NR来记录
范围模式
awk ‘/start pos/,/end pos/ {print $0}’ awk1.txt
awk ‘/start pos/,NR==xxx {print $0}’ awk1.txt
这样就只能取第一个条件了
一个开始和一个结束 必须要能确定行
这个=2 ,<=3 确定不了
所以只按前面的=2取了第二行
没有文件,awk依旧可以处理BEGIN模式下的操作块
BEGIN、END模块后面的语句分隔用;号
print的多个参数之间以逗号分隔
统计文件里面的空行
b=1就是验证下后面用什么符号,BEGIN,END后面的动作里用分号
a=a+1
a++
a=a+2
a+=2
a+=$0
命令赋值 -F
布尔表达式,为真才执行
以上是关于Linux awk 使用的主要内容,如果未能解决你的问题,请参考以下文章