在 BASH 中,如何替换使用 HTML 编写的文件中存在的变量中的 \r

发布于 2024-12-10 10:55:31 字数 298 浏览 0 评论 0原文

如何替换\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

How do i replace the \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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

别低头,皇冠会掉 2024-12-17 10:55:31

这应该删除第一个 \r。

AFTER="${ORIGINAL/

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

\r'/}"

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

This should remove the first \r.

AFTER="${ORIGINAL/

If you need to remove all of them use ${ORIGINAL//$'\r'/}

\r'/}"

If you need to remove all of them use ${ORIGINAL//$'\r'/}

忆依然 2024-12-17 10:55:31

你可以使用 sed,即

AFTER=`echo $ORIGINAL | sed 's/\\r//g'`

You could use sed, i.e.,

AFTER=`echo $ORIGINAL | sed 's/\\r//g'`
差↓一点笑了 2024-12-17 10:55:31

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

 ORIGINAL=$(echo ${BASH_REMATCH[1]} | tr -d '\r')

Another option is to use 'tr' to delete the character, or replace it with \n or anything else.

 ORIGINAL=$(echo ${BASH_REMATCH[1]} | tr -d '\r')
俏︾媚 2024-12-17 10:55:31

仅使用文字 ^M 字符,它对 bash 没有任何意义。

Just use a literal ^M character, it has no meaning to bash.

一向肩并 2024-12-17 10:55:31

与 @tharrrk 的方法类似,此参数替换也会删除最后一个 '\r':

AFTER="${ORIGINAL%'\r'}"

Similar to @tharrrk's approach, this parameter substitution also remove the last '\r':

AFTER="${ORIGINAL%'\r'}"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文