linux获取awk命令 linux awk命令详解( 二 )


-F , awk每次读一条记录或一行,并使用指定的分隔符分分隔指定域;
所没分隔符,则使用空格 。
任何awk语句都由模式和动作组成
模式,决定动作语句何时触发及触发事件,若忽略模式部分 , 动作将时刻保持执行状态 。
模式 , 可是任何条件语句,或符合语句 , 或正则表示式 。
BEGIN:设定计数,列印头,在任何文字浏览动作之前;
END:用来在awk完成档案浏览动作后列印输出档案总数和结尾状态标志 。
动作,在{}内指定;大多用来列?。焕锩婵砂篿f,looping,回圈推出结构;
若不指明采取动作,awk将列印所有浏览出来的记录 。
如何在Linux中使用awk命令
awk例项
1、cat /etc/passwd|awk -F: '{print $1}'
2、linux的awk一般都是gawk,/bin/awk - gawk
3、awk ‘/abc/’ file.txt 显示档案中包含abc行 。类似grep abc a.txt
4、awk ‘{print NR,NF,$1,$NF,}’ file.txt按空格分隔列,显示当前记录号、域数和每一行的第一列和最后一列 。
-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是一个强大的文本分析工具,相对于grep的查找 , sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大 。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理 。
awk有三个不同的版本:awk、nawk和gawk , 未作特别说明 , 一般指gawk,gawk是awk的GNU版本 。
之所以叫awk是因为其取了三位创始人Alfred Aho,Peter Weinberger,和Brian Kernighan的Family Name
的首字符 。
使用方法:
awk'{pattern+action}'{filenames}
尽管操作可能会很复杂,但语法总是这样,其中pattern表示awk在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令 。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组 。pattern就是要表示的正则表达式,用斜杠括起来 。
awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作 。完整的awk脚本通常用来格式化文本文件中的信息 。
通常,awk是以文件的一行为处理单位的 。awk每接收文件的一行 , 然后执行相应的命令,来处理文本 。
调用awk的三种方式
1、命令行方式
awk[-F field-separator]'commands'input-file(s)
其中,commands是真正awk命令,[-F域分隔符]是可选的 。input-file(s)是待处理的文件 。
在awk中 , 文件的每一行中,由域分隔符分开的每一项称为一个域 。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格 。

推荐阅读