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,}/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值