awk命令怎么处理特殊字符

按照接口规范生成的文件域分隔符是0x05,记录分隔符是0x0A0D。现在我想看我生成的文件域的个数是不是对的,不知道怎么处理这个0x05和0x0A0D。例如:awk'BE... 按照接口规范生成的文件 域分隔符是 0x05,记录分隔符是0x0A0D。现在我想看我生成的文件域的个数是不是对的,不知道怎么处理这个0x05 和 0x0A0D。
例如: awk 'BEGIN{FS='\005';RS='\00A\00D'} print{NF}' xxx.dat 这样写指令好像我的记录控制符回车换行写错了,如果我不指定RS,那么默认是换行,好像结果也不对。求大神指导下
展开
 我来答
cnbubble
2018-01-16 · TA获得超过2606个赞
知道大有可为答主
回答量:1990
采纳率:83%
帮助的人:749万
展开全部

0x0A0D ,写成两个十六进制应该颠倒次序:RS="\x0D\x0A"   这和数据存放的高位、底位有关,对应的字符就是\r\n,也就是通常说的Windows/DOS下面的回车换行符

测试:


追问

我后来百度了下,可能我的问题有点特殊。我在unix的vi打开看,每个记录后面都有个^M。我直接把记录分隔符指定成这个^M(unix下用ctrl+v ctrl+M输入)结果正好是我想要的,用您给的\r\n转义以及RS="\x0D\x0A"得到的结果都不是我要的。还是感谢您回答我的疑问,谢谢!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式