Sed - 명령 찾기 및 실행

Sed - 명령 찾기 및 실행

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

관련 정보