在BASH中,如何从使用HTML <textarea> </ textarea>编写的文件中存在的变量替换\ r \n

6 linux bash fedora bash4 archlinux

我如何更换\ r?

#!/bin/bash
...

# setup
if [[ $i =~ $screen ]]; then

    ORIGINAL=${BASH_REMATCH[1]}          # original value is: 3DROTATE\r
    AFTER   =${ORIGINAL/\\r/}            # does not replace \r
    myThirdPartyApplication -o $replvar  # FAILS because of \r

fi
Run Code Online (Sandbox Code Playgroud)

小智 9

这应该删除第一个\ r.

AFTER="${ORIGINAL/$'\r'/}"
Run Code Online (Sandbox Code Playgroud)

如果你需要删除所有这些,请使用$ {ORIGINAL // $'\ r'/}


imm*_*imm 6

你可以使用sed,即

AFTER=`echo $ORIGINAL | sed 's/\\r//g'`
Run Code Online (Sandbox Code Playgroud)

  • 工作了!!!只是一点点改进:赋值中不允许使用空格:AFTER=echo... (2认同)

小智 5

另一种选择是使用 'tr' 删除该字符,或将其替换为 \n 或其他任何内容。

 ORIGINAL=$(echo ${BASH_REMATCH[1]} | tr -d '\r')
Run Code Online (Sandbox Code Playgroud)