【发布时间】:2019-01-27 12:25:13
【问题描述】:
我过去曾使用 awk 和 grep 使用 bash 脚本提取子字符串,但我不知道如何找到子字符串,然后使用 bash 脚本替换该子字符串中的部分值。
如果我有如下字符串:
"key val1=0 val2=15 val3=22 'some notes here'"
如何有效地将 val1、val2 和 val3 值更新为其他值?所以如果我想把“val1=0”改成“val1=9999”,把“val2=22”改成“val2=0”。
我可以根据空格拆分字符串,遍历值以找到 val1,将其拆分为 0,将 0 更改为 9999(对 val2 重复),但是如何使用原始值重新创建原始字符串所以我结束了:
"key val1=9999 val2=0 val3=22 'some notes here'"
我有一个要求,这是在我不太熟悉的 bash 脚本中完成的,因此不幸的是,将其切换到 python、perl 或其他语言对我来说不是一个选择。
如果有区别,字符串将通过 STDIN 传递给脚本。我有兴趣更改的字符串的唯一部分是“val#=#”,所有其他文本都应该保持不变。
【问题讨论】: