使用 sed 或 awk 将特定字符串后面的所有数字替换为另一个数字

使用 sed 或 awk 将特定字符串后面的所有数字替换为另一个数字

我尝试了几种方法,但都没有成功。我有一个输入文件,其中包含很多类似这样的字段

weight=0.123456

与其他字段混合。我想将所有这些权重乘以一个因子,比如 100,所以我想看看

weight=12.3456

在输出文件中。使用 sed 或 awk 执行此操作的好方法是什么?

答案1

对于包含以下内容的简单文件


$ cat input
weight=0.0012
weight=0.0345

$ awk '/weight/{gsub(/weight=/, "")};{ value=$0*100; printf "weight=%s\n", value}' input

成功了。更复杂的输入文件需要更复杂的规则(可能)。

答案2

awk -F= '$1 ~ /weight/{print "weight="$2*100}' file

相关内容