regex - sed 命令适用于命令行,但不适用于 bash 脚本

标签 regex linux bash sed

我正在尝试将“6.1M”文本转换为“6.1 MB”。简单的 sed 命令对吧?

($SIZE 已设置为 610 万)

SIZE=`echo $SIZE|sed 's/M/ MB/'`

这只需在命令行上找到即可。但是,当我将其作为 bash 脚本的一部分执行时,我收到此错误:

sed: -e expression #1, char 10: unterminated `s' command

我尝试用反斜杠转义空格字符,但这没有帮助。我还尝试使用此语法,无论是否转义空格:

SIZE=$(sed 's/M/ MB/' <<< $SIZE)

同样的错误。这是怎么回事?

最佳答案

您运行的是哪个版本的 BASH?

bash --version
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)

以上 BASH 适用于 SIZE=$(sed 's/M/ MB/' <<< ${SIZE});

关于regex - sed 命令适用于命令行,但不适用于 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29240497/

相关文章:

java - 将第一个@替换为{{第二个@替换为}}

c - 如何在 gcc 内联汇编中使用全局变量

linux - 如何在 Arch Linux 上安装 Source Code Pro Font

node.js - 如何从 bash 脚本运行 NVM 命令

php - PHP explode() 模式有什么用?

java - Java 中的正则表达式转义序列错误

Python:在最后一个小写字母处拆分字符串

c++ - 在编译时为运行时设置环境变量

python - python 脚本可以在 bash 脚本中执行函数吗?

bash - Unix 循环 cut 的输出