在 BASH 中,如何替换使用 HTML 编写的文件中存在的变量中的 \r
如何替换\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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这应该删除第一个 \r。
如果您需要删除所有这些,请使用 ${ORIGINAL//$'\r'/}
This should remove the first \r.
If you need to remove all of them use ${ORIGINAL//$'\r'/}
你可以使用 sed,即
You could use sed, i.e.,
另一种选择是使用 'tr' 删除该字符,或将其替换为 \n 或其他任何内容。
Another option is to use 'tr' to delete the character, or replace it with \n or anything else.
仅使用文字
^M
字符,它对 bash 没有任何意义。Just use a literal
^M
character, it has no meaning to bash.与 @tharrrk 的方法类似,此参数替换也会删除最后一个 '\r':
Similar to @tharrrk's approach, this parameter substitution also remove the last '\r':