再次重申awk的语法
awk [options] ‘Pattern {Actions}’ file1,file2…
awk默认分隔符是空格,分隔符有分为“输入分隔符”和“输出分隔符”。
输入分隔符:awk在处理每一行文本的时候,以默认的空格将文本分隔成一个个单词作为变量。
输出分隔符:awk处理完文本之后,输出显示的时候,以空格分开。
输入分隔符
如果文本是空格隔开的,awk默认使用空格分隔单词变量。
如果文本不是空格隔开的,我们可以指定分隔符。
上图中,创建了两个文本文件,test1默认是空格作为分隔符,test2使用#作为分隔符。awk可以使用-F选项定义分隔符。此处-F就是awk语法中的[options]。
除了使用-F,还可以通过设置awk内置变量的方式设置分隔符。
awk -v FS='#' '{print $2,$3}' test2
输出分隔符
由输入分隔符,我们不难想到输出分隔符。上图中输出的结果实际默认就是以空格作为输出分隔符的。
awk支持指定输出分隔符
awk -v OFS='----' '{print $2,$3}' test1
输出合并
有了输出分隔符的概念之后,考虑一个case,我们想要输出的两列合并,此时只需要输出的两个变量不使用,隔开即可,比较一下下面的例子就明白啦。
分开显示
awk '{print $2,$3}' test1
合并显示
awk '{print $2$3}' test1