如何使用sed命令将换行符(“\n”)替换为空格(“”)?
我尝试过:
sed 's#\n# #g' file
sed 's#^$# #g' file
如何修复?
如何使用sed命令将换行符(“\n”)替换为空格(“”)?
我尝试过:
sed 's#\n# #g' file
sed 's#^$# #g' file
如何修复?
当前回答
可以使用xargs:
seq 10 | xargs
or
seq 10 | xargs echo -n
其他回答
答案是:标签。。。
如何使用sed替换换行符?
…在命令行的freebsd 7.2中不起作用:
( echo foo ; echo bar ) | sed ':a;N;$!ba;s/\n/ /g' sed: 1: ":a;N;$!ba;s/\n/ /g": unused label 'a;N;$!ba;s/\n/ /g' foo bar
但如果您将sed脚本放在文件中或使用-e“构建”sed脚本。。。
> (echo foo; echo bar) | sed -e :a -e N -e '$!ba' -e 's/\n/ /g' foo bar
或
> cat > x.sed << eof
:a
N
$!ba
s/\n/ /g
eof
> (echo foo; echo bar) | sed -f x.sed
foo bar
也许OS X中的sed是类似的。
针对上述“tr”解决方案,在Windows上(可能使用Gnuwin32版本的tr),建议的解决方案:
tr '\n' ' ' < input
对我不起作用,它可能会出错,或者出于某种原因实际上替换了\n w/“”。
使用tr的另一个功能,“delete”选项-d确实有效:
tr -d '\n' < input
或“\r\n”而不是“\n”
以下内容比大多数答案简单得多。此外,它还在发挥作用:
echo `sed -e 's/$/\ |\ /g' file`
tr '\n' ' '
是命令。
简单易用。
如果您不幸不得不处理Windows行结尾,则需要删除\r和\n:
tr '\r\n' ' ' < $input > $output