use*_*215 6 linux shell scripting sed
我是 Linux 新手。我正在调试一些代码。我遇到了以下命令:
PROGRAM_ID=$(echo $PROGRAM_ID|sed 's/-/,/g')
Run Code Online (Sandbox Code Playgroud)
谁能解释一下g这里代表什么?我知道连字符正在被逗号替换。
该/g标志表示在一行上全局执行替换。如果没有该标志,则只有每行的第一个连字符会被替换。
使用 Bash 的更好方法是
PROGRAM_ID=${PROGRAM_ID//-/,}
Run Code Online (Sandbox Code Playgroud)
但如果您必须一般地移植到 Bourne shell,则此替换工具不可用。
(在这种情况下,您应该注意"$PROGRAM_ID"在 . 中保留双引号echo。)