[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 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]
劳烦哪位兄弟给分析下!

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

TOP

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

TOP

返回列表