如何使用sed命令将换行符(“\n”)替换为空格(“”)?
我尝试过:
sed 's#\n# #g' file
sed 's#^$# #g' file
如何修复?
如何使用sed命令将换行符(“\n”)替换为空格(“”)?
我尝试过:
sed 's#\n# #g' file
sed 's#^$# #g' file
如何修复?
当前回答
在Mac OS X上(使用FreeBSD sed):
# replace each newline with a space
printf "a\nb\nc\nd\ne\nf" | sed -E -e :a -e '$!N; s/\n/ /g; ta'
printf "a\nb\nc\nd\ne\nf" | sed -E -e :a -e '$!N; s/\n/ /g' -e ta
其他回答
这里是没有缓冲区的sed(适用于实时输出)。示例:在HTML中用<br/>break替换\n
echo -e "1\n2\n3" | sed 's/.*$/&<br\/>/'
针对上述“tr”解决方案,在Windows上(可能使用Gnuwin32版本的tr),建议的解决方案:
tr '\n' ' ' < input
对我不起作用,它可能会出错,或者出于某种原因实际上替换了\n w/“”。
使用tr的另一个功能,“delete”选项-d确实有效:
tr -d '\n' < input
或“\r\n”而不是“\n”
sed -i ':a;N;$!ba;s/\n/,/g' test.txt
tr "\n" <file name>
@OP,如果您想替换文件中的换行符,可以只使用dos2unix(或unix2dox)
dos2unix yourfile yourfile
在Mac OS X上(使用FreeBSD sed):
# replace each newline with a space
printf "a\nb\nc\nd\ne\nf" | sed -E -e :a -e '$!N; s/\n/ /g; ta'
printf "a\nb\nc\nd\ne\nf" | sed -E -e :a -e '$!N; s/\n/ /g' -e ta