[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
Windows里面需要使用双引号
  1. sed -r "s/ +/ /g"  sed_before.txt > sed_after.txt
复制代码
如果还是有问题,换个sed版本试试:
http://www.bathome.net/s/tool/index.html?key=sed
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

本帖最后由 gawk 于 2016-5-31 16:01 编辑

回复 3# beber


如果你的文件是从Windows直接复制到Linux的,由于两种系统文件格式不一样,会导致sed处理异常。
Windows文本行尾是 CR LF
Linux文本行尾是 LF
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

你可以先转换一下文件格式,然后再做处理:
  1. sed 's/\r//g'  sed_before.txt > sed_tmp.txt
  2. sed -r 's/ +/ /g'  sed_tmp.txt > sed_after.txt
复制代码
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 7# beber


    你可以 cat -A sed_before.txt 看看文件行尾是什么符号,我这里用 CentOS 6.7 测试没有发现问题。
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 10# beber


    这说明它是Windows格式的文本
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

如果你的Linux里面有dos2unix命令,可以先用它转换一下文本格式:
  1. dos2unix sed_before.txt
复制代码
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

返回列表