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

gawk中match无法正确匹配回车符\r

本帖最后由 pcl_test 于 2016-9-3 21:11 编辑

按理说gawk识别\n为行结束符,那么\r是可以被读取到的,可是我测试的结果是找不到\r,代码如下:
  1. #&cls&@gawk -f %0 a.txt&pause>nul&exit
  2. {print match($0,/\r/)}
复制代码
a.txt内容:

显示的结果全是0,就是没找到\r

劳烦哪位兄弟给分析下!
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

本帖最后由 wankoilz 于 2015-10-9 08:58 编辑

原来是编码的问题。
刚换了下a.txt的编码,原来是ANSI,分别换成小端、大端试了试,得出的结果又有疑问。
小端结果:

大端结果:

从结果可以看出match()函数是根据“字节”算的(比如第一个\r的字符位置是7,而函数的结果是14)。
大端的第一行0D位置是14,没问题,我不能理解的是为什么大端的第一行结果是15。
兄弟们帮忙给分析下!(上班了,离开下...)
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

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

TOP

返回列表