2011-07-12 179 views
4

如何在sed中用;\n(分号后跟换行符)替换;替换';'与'; n'

我试过建设关中

sed s/;/\\n/g file 

sed -e '/;/G' file 

,但我不能让任何工作

回答

4

你需要骗了一下:在bash你可以说

sed $'s/;/;\\\n/g' 

,或者便携(POSIX):

sed "s/;/;$(printf '\\\n')/g" 

sed不便携/可靠地处理任何地方,但在反斜杠逃逸该模式,甚至在那里它是有限的(POSIX只需要处理\n,而不是\t或其他)。请注意,在\n之前还需要反斜杠,因此sed不会将其作为命令的结尾读取。

+0

你的第二个sed命令在bash中运行时给出了'sed:-e表达式...未终止的'命令',第一个命令很有用,谢谢! – pseudosudo

1
sed -ie 's/;/;\n/g' <file> 

这是假设你想直列做在该文件中,删除“i”,只使用“-e”,如果不是这种情况。