我有一个名为 app.properties 的文件,如下所示
prop1.value=hi
prop2.value=hello
prop3.url=https://google.com
根据我的要求,如果我看到任何.value
,我需要调用实用函数来替换值。仅作为示例,该实用程序只需将传递给它的字符数乘以 * 2。
所以,事情应该变成这样。
prop1.value=4
prop2.value=10
prop3.url=https://google.com
我已经用 sed 完成了简单的查找和替换。不确定如何调用任何命令来替换该值。
sed -E 's/.value=(.*)/.value=\1/g' app.properties
如果 sed 不是正确的选择,您能建议其他选择吗?
答案1
怎么样
$ awk 'BEGIN{OFS=FS="="} $1 ~ /\.value$/ {$2 = 2 * length($2)} 1' app.properties
prop1.value=4
prop2.value=10
prop3.url=https://google.com
如果你想要更接近你的sed
方法,那么也许
perl -pe 's/\.value=(.*)/sprintf ".value=%s", 2 * length $1/e' app.properties
或者
perl -pe 's/(?<=\.value=).*/2 * length $&/e' app.properties