免费注册 查看新帖 |

Chinaunix

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

如何去除变量后面的^M [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-13 02:10 |只看该作者 |倒序浏览
有没有大侠碰到这种情况? 从某文件中取出的变量后带有^M, 比如为a。这时候用echo "$a", 可以显示该变量的值。
但是一旦echo "$a !!!", 就会发现a的值不能被正确显示,会被!!!侵占一部分... 不知道我说明白没有。现在怀疑是^M
搞的鬼,怎么删除变量中的^M呢?

论坛徽章:
0
2 [报告]
发表于 2009-06-13 03:11 |只看该作者

回复 #1 nicktasty 的帖子

呵呵,找到答案了,用tr -d '\r' 变量 就可以消除变量里的^M了,删除^M果然变量的打印也正常了

论坛徽章:
0
3 [报告]
发表于 2009-06-13 08:37 |只看该作者
经典问题

夜游神
1#  2009-6-13 02:10  
2#  2009-6-13 03:11

论坛徽章:
0
4 [报告]
发表于 2009-06-13 10:06 |只看该作者
dos2unix?

论坛徽章:
0
5 [报告]
发表于 2009-06-13 12:03 |只看该作者
^M == \r\n
在AIX下windows的回车(\r\n)被识别成^M+回车

方法1:
dos2unix  urfile.txt

方法2:
tr -d '\015'  ufile >newfile

方法3:
sed -i 's/\r//' filename


aix下取出"^M"字符

#!/bin/sh

filename=$1

for name in `ls $filename`
do
if [ "$name" != "format_file.sh" ];then
tr -s '\015' '\012' <$name >"${name}_bak"
mv "${name}_bak" "$name"
fi
done

exit 0
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP