【发布时间】:2018-11-16 13:45:59
【问题描述】:
假设我有以下 Bash 脚本:
#!/bin/bash
INCREMENT_BY=5
sed 's/20000/&+$INCREMENT_BY/g' old > new
我希望所有出现的20000 都被20005 替换,但它们被替换为20000+$INCREMENT_BY。我怎样才能做到这一点?
【问题讨论】:
-
是否使用 awk 选项?
假设我有以下 Bash 脚本:
#!/bin/bash
INCREMENT_BY=5
sed 's/20000/&+$INCREMENT_BY/g' old > new
我希望所有出现的20000 都被20005 替换,但它们被替换为20000+$INCREMENT_BY。我怎样才能做到这一点?
【问题讨论】:
你应该使用 双引号 作为 eval 变量,例如:
sed "s/20000/$(( $INCREMENT_BY + 2000))/g" old
【讨论】:
sed "s/20000/$(( $INCREMENT_BY + 2000))/g" old