基本原理
awk的工作是这样子的,awk每次以”\n”为分隔符从而读取文件的一行
然后以空格为分隔符,将所有的单词分开
然后用
符号表示每一个单词,
符
号
表
示
每
一
个
单
词
,
0表示所有的单词,
1表示第一个单词,
1
表
示
第
一
个
单
词
,
2表示第二个单词
使用规则
awk的使用一般是
awk '{awk命令}' 文件名
awk的命令必须包含在’{}’中
比如
awk '{print $1} aa.sh'
其中的print就是awk的内置命令,$1表示第一个字符
自定义分隔符
上文说了,awk的默认分隔符是空格,我们可以通过选项去指定一个分隔符
awk -F ':' '{print $1}' aa.sh
此时awk就会按照:将单词分开了
比如一个文档中第一行是root:user:password
这个时候awk就会按照:将第一行的数据分割成一个一个单词
print语法
print可以一次打印多个单词,单词之间可以按照一定的规则进行分开
awk -F ':' '{print $1"\t"$3}' aa.sh
这样子就把所有行的第一个单词和第三个单词打印出来了,同时单词之间还有分开一段距离
特殊语法
如果想要在打印出来的所有行结果前面加上一个标识,比如上面的内容中,如果想要在所有行的加上一个’用户 密码’
就可以使用下面的方式
awk -F ':' 'BEGIN {print "用户,密码"} {print $1"\t"$3}' aa.sh
还有下面的最后打印的操作
awk -F ':' 'BEGIN {print "用户,密码"} {print $1"\t"$3} END {print "用户名 密码"}' aa.sh
上面的awk的工作流是这样的,首先执行BEGIN在行首的位置打印出来“用户 密码”,然后读取文本的每一行,按照规则打印,最后执行END命令
未完待续
https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html
awk 筛选
awk在使用的时候,是过滤每一行的信息的,但是我们想要筛选出其中的