1). awk的多字符分隔符:
awk通常只支持单字符的分隔符,但gawk 支持多字符作为分隔符;
在linux下,awk是gawk的的符号链接文件,因此支持多字符作为分隔符;
2). awk 表示分隔符的方法:
a). awk的选项: -F ‘分割字符’
b). awk的全局变量:FS # Field Separator
c). awk的默认的分隔符:是空白符包括: 空格、制表符、换行符:
3). 用法:
1). 打印系统中各个用户使用的shell:
cat /etc/passwd | awk -F : '{ print $1, $7}'
或者:
cat /etc/passwd | awk 'BEGIN{ FS = ":"; } {print $1, $7}'
2). 多字符分隔符:
[zhongbo.wzb@v132170 ~]$ echo "abcdef" | awk -F cd '{print $1, $2}'
ab ef
[zhongbo.wzb@v132170 ~]$ echo "abcdefg" | awk -F [bdf] '{print $1, $2, $3, $4}'
a c e g
4). 特殊的多字符分隔符: ||
[zhongbo.wzb@v132171.sqa.cm4 ~]$ echo "abc||def||hij" | gawk -F'\\|\\|' '{print $1, $2, $3}'
abc def hij
[zhongbo.wzb@v132171.sqa.cm4 ~]$ echo "abc||def||hij" | gawk -F'\\\|\\\|' '{print $1, $2, $3}'
gawk: warning: escape sequence `\|' treated as plain `|'
abc def hij
[zhongbo.wzb@v132171.sqa.cm4 ~]$ echo "abc||def||hij" | gawk -F'\\|\\|' '{print $1, $2, $3}'
abc def hij
[zhongbo.wzb@v132171.sqa.cm4 ~]$ echo "abc||def||hij" | gawk -F"\\|\\|" '{print $1, $2, $3}'
gawk: warning: escape sequence `\|' treated as plain `|'
abc||def||hij
[zhongbo.wzb@v132171.sqa.cm4 ~]$ echo "abc||def||hij" | gawk -F"\\\|\\\|" '{print $1, $2, $3}'
abc def hij
[zhongbo.wzb@v132171.sqa.cm4 ~]$ echo "abc||def||hij" | gawk -F"\\\\|\\\\|" '{print $1, $2, $3}'
abc def hij