如何在UNIX下输入特殊的分隔符号
文件中有特殊的分隔符号"※",无法把这个文件中的某些字段用awk命令打印出来。请大侠们帮帮忙!
※ 65026 ※ 10002 ※ 150 ※ 0 ※ 20100401 ※ 20100424 ※ 70546 ※ 3 ※ 0
※ 65027 ※ 16003 ※ 19 ※ 0 ※ 20100501 ※ 20100424 ※ 7054-2 ※ 6 ※ 0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
本帖最后由 树袋熊 于 2010-08-26 10:11 编辑
虽然偶让你自己写脚本,可是偶还是忍不住手欠,给你写了个命令行, 在偶的机器上很灵地,哈哈,
我把你上面的文件粘贴到我机器上,名字ABC.TXT,那个垃圾号变成了问号,在你机器上估计也是问号.别的号也没有关系:
树袋熊$ root cat abc.txt
? 65026 ? 10002 ? 150 ? 0 ? 20100401 ? 20100424 ? 70546 ? 3 ? 0
? 65027 ? 16003 ? 19 ? 0 ? 20100501 ? 20100424 ? 7054-2 ? 6 ? 0
VLPAR
树袋熊$ cat abc.txt |awk '{s=0; for (i=1;i<=NF;i++) ( $i != "?" ) || ($i=""); print $0}'
65026 10002 150 0 20100401 20100424 70546 3 0
65027 16003 19 0 20100501 20100424 7054-2 6 0
现在输出变成你想要的了,你想怎么处理都行了.
如果你机器上可以看到※
就把命令换成这样:
cat abc.txt |awk '{s=0; for (i=1;i<=NF;i++) ( $i != "※" ) || ($i=""); print $0}'
或者:
cat abc.txt |awk '{s=0; for (i=1;i<=NF;i++) ( $i != "※" ) || ($i=""); print $0}'
然后你自己去tryh
强烈要求把俺上面的命令放入大学计算机课教材,有循环,有变量初始化,有判断语句,还有AWK,还有垃圾,但是不影响运行,关键还这么短,呵呵 .
偶受打酱油的那个CUT的启发,给你出个主意:
你可以写个过滤器脚本,读入每个字符,然后进行置换,如果是数字就保持不变,如果不是数字,减号留下,其他的字符是你不需要的就替换成空格,这样用这个过滤器可以把你的文件变成另外一个文件,而新文件显然不含有这些汉字字符. 记住别把行号给换成别的,不然你就不分行了.
偶不给你写脚本,你需要自己写喔.嘿嘿.
是的,就是字符集的问题。
按字节cut难道不需要输入分隔符号吗!能否说得具体点。
是不是字符集的问题呢!
哈哈,汉化UNIX.西文UNIX不支持这个字符也是应该的吧?
按字节cut呢