awk用“||”作为分割符的问题

   在用awk进行分割记录文件的时候,我们发现单独用"|"基本上是Ok,但用“||”则是无法进行正常的分割,下面是测试的例子:

 

在测试之前给到一个测试的文件:test.txt,里面的内容如下:

one|two|three|four|five|six

one2|two2|three2|four2|five2|six2

 

awk输出的文件存到test_awk_output.txt

 

一,使用"|"进行分割

/usr/bin/awk -F '|' '{print $2}'  ./test.txt  > ./test_awk_output.txt

 

输出内容 test_awk_output.txt:

two
two2

 

结论是:可以正常分割

 

二,使用"/|"进行分割

/usr/bin/awk -F '/|' '{print $2}'  ./test.txt  > ./test_awk_output.txt

 

输出内容 test_awk_output.txt:

two
two2

 

结论是:可以正常分割,但awk给出如下的warning:

awk: warning: escape sequence `/|' treated as plain `|'

 

把test.txt的分割符改成"||",内容如下:

one||two||three||four||five||six

one2||two2||three2||four2||five2||six2

 

三,使用"||"进行分割

/usr/bin/awk -F '||' '{print $2}'  ./test.txt  > ./test_awk_output.txt

 

输出内容 test_awk_output.txt则为空。

 

结论是:无法直接用"||"进行分割

 

四,使用"/|/|"进行分割

/usr/bin/awk -F '/|/|' '{print $2}'  ./test.txt  > ./test_awk_output.txt

 

输出内容 test_awk_output.txt则为空。

 

结论是:无法直接用"/|/|"进行分割,并且awk给出如下的警告:

awk: warning: escape sequence `/|' treated as plain `|'

 

五,使用“//|//|”进行分割

/usr/bin/awk -F '//|//|' '{print $2}'  ./test.txt  > ./test_awk_output.txt

 

输出内容 test_awk_output.txt:

two
two2

 

结论是:可以正常分割

 

综上的实验结论:awk对"||"进行分割必须进行二次转义,即-F“//|//|”进行分割。

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值