Board logo

标题: [问题求助] gawk中match无法正确匹配回车符\r [打印本页]

作者: wankoilz    时间: 2015-10-8 14:30     标题: gawk中match无法正确匹配回车符\r

按理说gawk识别\n为行结束符,那么\r是可以被读取到的,可是我测试的结果是找不到\r,代码如下:
  1. #&cls&@gawk -f %0 a.txt&pause>nul&exit
  2. {print match($0,/\r/)}
复制代码
a.txt内容:
[attach]9164[/attach]
显示的结果全是0,就是没找到\r
[attach]9165[/attach]
劳烦哪位兄弟给分析下!
作者: wankoilz    时间: 2015-10-8 15:01

原来是编码的问题。
刚换了下a.txt的编码,原来是ANSI,分别换成小端、大端试了试,得出的结果又有疑问。
小端结果:
[attach]9166[/attach]
大端结果:
[attach]9167[/attach]
从结果可以看出match()函数是根据“字节”算的(比如第一个\r的字符位置是7,而函数的结果是14)。
大端的第一行0D位置是14,没问题,我不能理解的是为什么大端的第一行结果是15。
兄弟们帮忙给分析下!(上班了,离开下...)
作者: wankoilz    时间: 2015-10-8 22:17

左思右想还是猜不透...




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2