Chinaunix

标题: SED 替换在LInux下不行,在Cygwin下正常 [打印本页]

作者: lightwiter    时间: 2006-12-13 10:58
标题: SED 替换在LInux下不行,在Cygwin下正常
cat test.txt
13786118023|sdfssdfecv|sdfexcvggaer|12313745673456|sdfjalk|adlkfj;|sdf

cat test.txt | sed 's/13[0-9]\{9\}|/\n&/g'

13786118023|sdfssdfecv|sdfexcvggaer|123
13745673456|sdfjalk|adlkfj;|sdf

这样在cygwin下是正常的。

但是在linux下执行却有问题,结果如下:

n13786118023|sdfssdfecv|sdfexcvggaer|123n13745673456|sdfjalk|adlkfj;|sdf

好像是把\n看作是n字母的转义了,请高手解答。
作者: lightwiter    时间: 2006-12-13 11:05
cygwin下的版本是GNU sed version 4.1.5
linux下的版本是GNU sed version 3.02

如果是版本的问题,有什么快速的替代方案没有??
作者: 一梦如是    时间: 2006-12-13 11:37
手里没有测试环境,记得以前好象是这么解决的

  1. sed 's/13[0-9]\{9\}|/'`echo "\n"`'&/g'
复制代码

另外,ctrl+v+ENTER的方式输入"\n"应该也可以解决。

[ 本帖最后由 一梦如是 于 2006-12-13 11:38 编辑 ]
作者: Edengundam    时间: 2006-12-13 11:48
like this:

  1. sed 's/13[0-9]\{9\}|/\
  2. &/g'
复制代码


PS: 梦梦同学好~~~^_^
作者: lightwiter    时间: 2006-12-13 12:09
好,谢谢先去试试。
作者: lightwiter    时间: 2006-12-13 12:11
一梦如是的不行。

Edengundam的可以。

不过都谢谢大家




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2