Bash:如何替换字符串中的文字a\r\n?
我正在尝试使用Bash:如何替换字符串中的文字a\r\n?,bash,escaping,Bash,Escaping,我正在尝试使用tr将文字\r\n替换为文字\n STR="**Line1**\r\nLine2" echo $STR echo $STR | tr '\r\n' '\n' 我希望 **Line1**\r\nLine2 **Line1**\nLine2 但是我得到了 **Line1**\r\nLine2 **Line1**\r\nLine2 我哪里出了问题?tr将stdin替换为stdout。要替换变量bash,可以使用参数展开 STR=${STR//\\r\\n/\\n} echo "$S
tr
将文字\r\n
替换为文字\n
STR="**Line1**\r\nLine2"
echo $STR
echo $STR | tr '\r\n' '\n'
我希望
**Line1**\r\nLine2
**Line1**\nLine2
但是我得到了
**Line1**\r\nLine2
**Line1**\r\nLine2
我哪里出了问题?
tr
将stdin替换为stdout。要替换变量bash,可以使用参数展开
STR=${STR//\\r\\n/\\n}
echo "$STR"
若字符串可以包含制表符空间或换行符,当用作参数时也不要忘记双引号
否则,如果问题在于
tr
。反斜杠是一个转义字符,必须转义,但tr
是一个字符音译器,不适合替换字符串 \r\n
是一个由四个字符组成的字符串。您需要一个可以替换字符串的工具,例如sed
,tr
,而不是执行逐字符的音译