以下に示すように、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