GAWK(二):将RS、FS设置为连续空格的三种方法

在字符串的分割中,由于信息传递的多样性,导致分析的文本出现多样性,比如将常用的制表符“\t”设置为4个连续的空格,此时如果继续沿用默认的匹配,将会出现多个空白的域。

解决此问题,最好的办法莫过于使用正则表达式,但AWK中并没有标准的空格转义字符,退格符\b(属于控制字符,编码为0000 1000)不等于空格

1. 使用字符表述

这是最直接的方法,直接用空格键输入即可,共有两种方式,如下:

# 请注意中括号中的空白
FS = "[ ]{4,}"
# 请注意量词前面的空白
FS = " {4,}"

2. 使用八进制表述

基于ASCII编码,可以将空格进行编码转义,如下:

FS = "\040{4,}"

在这种表述方法中,数字一定要有三位,最前面的“0”绝不可以省略。

3. 使用十六进制转义

与八进制类似,只不过计算不一样,且前面的字符为“\x”,如下:

FS = "\x20{4,}"

其他

在正则表达式的使用过程中,我发现FS的赋值一定要使用字符串,而不可直接使用正则表达式匹配,如下:

#  程序将提示语法错误,无法运行 
FS = /\x20{4,}/

猜你喜欢

转载自blog.csdn.net/yiifaa/article/details/78837835