用字符替换换行符

用字符替换换行符

我想更换\n与一个角色一起。

echo -n  "s\n" |tr  "\n"  "a"
s\n

为什么得不到 结果?

答案1

man echo

-e启用反斜杠转义的解释

您的 echo 可能是 shell 内置命令 (try type echo)。如果是这样,请使用help echo而不是man echo。但它应该对 option 说同样的话-e

若没有此选项,\n字符串将按原样打印,而不是以换行符形式打印。请注意,tr不需要特殊选项即可按预期工作。

固定命令:

echo -ne  "s\n" | tr  "\n"  "a"

另一位用户 Gordon Davisson 指出了一些问题。它们似乎很重要,值得我将它们纳入我的答案中以供将来参考。从这一点来看,所有功劳都归功于戈登

的不同版本echo在转义和选项方面非常不一致。有些版本会在没有 的-e情况下解释转义序列。有些版本会在输出中打印“-e”。有些版本会做其他事情。对于这样的事情,请使用printf(如printf "s\n")。请参阅POSIX 规范echo,尤其是“应用程序使用”部分。

相关内容