linux基础之awk命令详解
一 awk主要是用来对指定对文本或者命令的输出逐行处理和分析的,下面来简单的看一下awk用法,方便以后需要使用的时候在回头看
1.1 基础的用法
[root@wxm ~]# cat test 1 zs 38 2 ls 39 3 ww 40
[root@wxm ~]# awk 'BEGIN {print "start_num","start_name","start_age"} {print"xuhao:"$1,"name:"$2,"age:"$3} END {print "end_num","end_name","end_age"}' test
start_num start_name start_age
xuhao:1 name:zs age:38
xuhao:2 name:ls age:39
xuhao:3 name:ww age:40
end_num end_name end_age
用法介绍:
awk基础用法是用来逐行的对文本文档或者命令输出的结果进行解析,并且支持自定义添加,和添加输出的行首以及行尾,具体用法以及效果入上所示。
1.2 值得一提的是还有一个$0以及$NF以及$(NF-n)用法
$NF表示的是被切割完成之后的最后一行也就是倒数第一行,而$(NF-n)表示的则是,倒数n+1表示的内容,来看一下下面的几个例子
[root@wxm ~]# awk '{print$(NF-1)}' test zs ls ww [root@wxm ~]# awk '{print$(NF-2)}' test 1 2 3 [root@wxm ~]# awk '{print$(NF0)}' test 1 zs 38 2 ls 39 3 ww 40 [root@wxm ~]# awk '{print$(NF)}' test 38 39 40
1.3 对于文本我们可以指定任意的输入分隔符以及任意的输出分隔符来对awk后面滴滴内容进行输出展示,例如
[root@wxm ~]# awk -v FS=' ' -v OFS=' ' '{print$1,$2,$3}' test 1 zs 38 2 ls 39 3 ww 40
用法解释: FS和OFS都为awk里面的变量,需要使用-v的参数引入,之后FS表示输入分隔符,针对awk命令的分割选项, OFS是输出分隔符,针对awk的标准输出符号