awk、grep、sed是linux操作文本的三大利器,也是必须掌握的linux命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。
以下所有实验输出,均以测试文件test.log内容为基准:
20170102 admin,password Open 20170801 nmask,nmask close 20180902 nm4k,test filter
awk
AWK是一种处理文本文件的语言,是一个强大的文本分析工具;awk是以列为划分计数的,$0表示所有列,$1表示第一列,$2表示第二列。
awk参数
- -F 指定输入文件折分隔符,如-F:
- -v 赋值一个用户定义变量,如-va=1
- -f 从脚本文件中读取awk命令
注:只列举最常用的参数
分隔符
每行按空格分割列,并输出第1、4列
$ awk '{print $1,$4}' test.log 或者 $ cat test.log | awk '{print $1,$4}'