아래와 같이 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