我想更换\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
,尤其是“应用程序使用”部分。