sed를 사용하여 JSON 값에 일부 문자를 추가하고 싶습니다.
예를 들면 다음과 같습니다.
{"contactForm":{"title":"Mr","firstName":"Jimmy","phonenumber":"12341234"}}
나는 다음으로 변신하고 싶다.
{"contactForm":{"title":"_Mr_","firstName":"_Jimmy_","phonenumber":"_12341234_"}}
값은 밑줄로만 묶여 있습니다.
이 표현식을 사용하면 거의 올바른 일치가 발생합니다 (끝에 중괄호가 일치하는 것은 제외).
[^:]+(?=,|$)
https://regex101.com/r/nE5eV3/409 에서 예를 참조하십시오.
하지만 캡처를 시작점으로 인쇄 할 수도 없습니다.
sed 's/[^:]+(?=,|$)/\\1/'
{"contactForm":{"title":"Mr","firstName":"Jimmy","phonenumber":"12341234"}}
{"contactForm":{"title":"Mr","firstName":"Jimmy","phonenumber":"12341234"}}
sed를 사용하여 이러한 값을 밑줄로 묶는 방법은 무엇입니까?
당신은 사용할 수 있습니다
sed 's/:"\([^"]*\)"/:"_\1_"/g' file > newfile
POSIX BRE 패턴은 다음과 일치합니다.
:"
- :"
부분 문자열\([^"]*\)
-캡처 그룹 1 : 다음을 제외한 0 개 이상의 문자 "
"
- "
문자.RHS에는 \1
캡처 그룹 # 1에 저장된 값을 다시 붙여 넣는 자리 표시자가 있습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다