如何使用sed命令将换行符(“\n”)替换为空格(“”)?

我尝试过:

sed 's#\n# #g' file
sed 's#^$# #g' file

如何修复?


当前回答

试试看:

echo "a,b"|sed 's/,/\r\n/'

其他回答

要删除空行,请执行以下操作:

sed -n "s/^$//;t;p;"

可以使用xargs:

seq 10 | xargs

or

seq 10 | xargs echo -n

也可以使用标准文本编辑器:

printf '%s\n' '%s/$/ /' '%j' 'w' | ed -s file

注意:这会将结果保存回文件。

与这里的大多数sed答案一样,此解决方案的缺点是必须首先将整个文件加载到内存中。

为什么我没有找到一个简单的awk解决方案?

awk '{printf $0}' file

printf将打印没有换行的每一行,如果您想用空格或其他分隔原始行:

awk '{printf $0 " "}' file
tr '\n' ' ' 

是命令。

简单易用。