awklinux命令 linux中awk用法详解( 三 )


-F引数可以设定分割引数,例如按:分割
awk -F: ‘{print $1}’ /etc/passwd
或者cat file|awk -F “|” ‘{print $1}’
5、awk程式语言
cat v.txt|awk ‘{print length($1)}’
6、awk中使用NR和FNR , 一般在awk处理多个档案时,NR==FNR才有意义
NF 当前记录中的栏位数 。
NR 当前记录数 。
FNR同NR,但相对于当前档案 。
awk ‘{print NR,FNR}’ test.txt test2.txt
awk ‘{if(NR==FNR){a[FNR]=$1;}else{print $1,a[FNR]}}’ b.txt a.txt
7、列印奇数行与偶数行
awk ‘NR%2’ test.txt
awk ‘!(NR%2)’ test.txt
8、杀死tomcat的s.sh指令码
#!/bin/sh
ps -ef| grep tomcat |grep -v grep | awk ‘{print $2}’ |xargs kill -9
9、列印前7列
cat a.txt|awk ‘{NF=7}1’b.txt
tail -f aess.log|awk ‘NF=7′ OFS=’\t’b.txt
cut -d”,” -f3-6 urfile
LINUX系统怎么使用awk命令实现下述操作
cat file|awk -F"name=" '{print $2}'|awk -F\" '{print $1}'
试试看 , 第二个”的转义,我没测试,可以自己调下
Linux入门系列——awk命令详解 awk是一个强大的文本分析工具awklinux命令,与grep、sed相比 , awk在对数据分析并生成报告时,显得有很大的优势 。
awk有三个不同的版本:awk、nawk和gawk,在没有做特殊说时的时候默认的就是gawk , gawk是awk的GNU版本 。
其中command是真正的awk命令 , -F表示域的分隔符,是个可选项 。Filename是等待处理的文件
将所有的awk命令写入到一个文件,并使用该文件有X权限,然后awk命令解释器作为脚本的首行,也就是说可以把脚本最开始的 #!/bin/bash换成 #!/bin/awk
最后直接执行这个脚本文件就行awklinux命令了 。
-f 指定要加载的awk脚本,是一个文件 。Filename是等待处理的文件
awk的工作流程是这样的:读入一行后(最后面带有” ”的),就按-F指定的分隔符来将该行划分成N个区域,$0表示所有的区域 , $1表示第一个域 , $2表示第二个域,依此类推,$n表示第n个域 。
总结:awk先执行BEGIN内的命令,然后再读入文件中的行,接着就是按照指定的分隔符将该行分成N个区域 , 然后再来执行模式所对应的动作action 。然后,再来读入第二行 。。再重复执行action , 直到所有的行都处理完成 。最后再执行END中的命令 。
注意:' // '之间是支持正则表达式的 , 如果此处只有pattern,而没有action,那么awk默认会把匹配到的行打印出来 。
awk中的print还可以使用C语言中的printf来替代 。在输出格式比较复杂的时候使用printf函数会比print函数要更直观一些 , 如下:
还可以使用-v key=value来自定义变量 。如下:
awk中的条件语句是从C中借鉴过来的
语法:if (condition) {then-body} else {else-body}
例如使用awk来统计某个目录下的普通文件的大小 , 不包括子目录的,并过滤掉目录 。
循环语句也和C中的一样,支持while、do/while、for、continue、break等关键字 。
break和continue常用于循环中awklinux命令;
在awk中,数组的下标可以是数字或字母 。一般awk中的数组的作用是从记录中收集信息,用于计算总和、统计单词等 。
在awk中要删除一个元素的时候使用 delete array[index]
更多请参见awk官方文档[]
【awklinux命令 linux中awk用法详解】awklinux命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux中awk用法详解、awklinux命令的信息别忘了在本站进行查找喔 。

推荐阅读