免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 3132 | 回复: 21
打印 上一主题 下一主题

显示"\"问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-14 23:21 |只看该作者 |倒序浏览
正在使用
while循环读取文件的每一行,判断一些东西,不同的条件再把该行字符输入到不同的文件中去,
现在遇到问题,当文件中含有转义符号"\"的时候,再把读取的那一行echo输出到指定文件的时候被忽略。例如“\[”,结果文件中就会只有"[",不知道怎么解决。
想用for循环解决,结果发现for中将一行放入到变量中的时候,如果行中有空格的话,就会有多个域,这样就一次读一个域,弄出的结果可想而知,也不是想要的结果,而读取的文件中的字符有很多,特殊字符也有,所以如果修改域分隔符的话,对于一个通用的程序的话又不太严密。不知有什么好的解决办法?

论坛徽章:
0
2 [报告]
发表于 2009-05-15 00:02 |只看该作者

回复 #1 wuicpp 的帖子

while read line ;do echo "$line" >>4

加个双引

论坛徽章:
0
3 [报告]
发表于 2009-05-15 19:34 |只看该作者
之前试过的,双引号也是不行的。

论坛徽章:
0
4 [报告]
发表于 2009-05-15 19:56 |只看该作者
我感觉在while循环read的将一行放入变量的时候就已经把转义符忽略掉了。

论坛徽章:
0
5 [报告]
发表于 2009-05-15 22:34 |只看该作者

回复 #3 wuicpp 的帖子

什么系统,我的可以,rhel4

论坛徽章:
0
6 [报告]
发表于 2009-05-15 23:00 |只看该作者
就是rh4的。

论坛徽章:
0
7 [报告]
发表于 2009-05-15 23:12 |只看该作者

回复 #6 wuicpp 的帖子

对不起,我的也一样,刚才试错了,

这样你看行不行
[w]:>2
[w]cat 4
Filesystem /*  1K-blocks  \*    Used Available Use% Mounted on
ddddddddddddddddddddd
fffffffffffffffff
ggggggggggggggggggggggg
[w]awk '{print $0>2}' 4
[w]cat 2
Filesystem /*  1K-blocks  \*    Used Available Use% Mounted on
ddddddddddddddddddddd
fffffffffffffffff
ggggggggggggggggggggggg

[ 本帖最后由 wtuter 于 2009-5-15 23:17 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2009-05-15 23:15 |只看该作者
可以断定,在read放入变量的时候其实就已经将\过滤掉了。

论坛徽章:
0
9 [报告]
发表于 2009-05-15 23:22 |只看该作者
我是要写很多文件的,满足不同条件的行写到相应的输出文件中,所以使用awk好像不行吧。

论坛徽章:
0
10 [报告]
发表于 2009-05-15 23:25 |只看该作者

回复 #9 wuicpp 的帖子

应该可以,具体说说
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP