我想使用纯 Bash(不使用 awk、perl 或 sed)替换字符串中的所有子字符串。
这行:
string=${string/$oldValue/$newValue}
Run Code Online (Sandbox Code Playgroud)
仅替换第一次$oldValue出现。
这就是我通过以下方式做到这一点的原因:
while [[ $string == *"$oldValue"* ]]; do
string=${string/$oldValue/$newValue}
done
Run Code Online (Sandbox Code Playgroud)
但我不喜欢这种“丑陋”(=低效)的方法。
有一个更好的方法吗?(可能是第一行代码的通用形式)
尝试类似的方法:
export str="Hello World Hello"
export oldValue="Hello"
export newValue="Hi"
echo ${str//$oldValue/$newValue}
Hi World Hi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
764 次 |
| 最近记录: |