sed가 오른쪽의 "\1"을 바꾼다는 것은 무엇을 의미합니까? [복사]

sed가 오른쪽의 "\1"을 바꾼다는 것은 무엇을 의미합니까? [복사]

여기에 제출된 Kusalananda의 답변에 의견을 추가할 수 없기 때문에 이 질문을 게시하게 되었습니다."key = value" 줄: 특정 키의 값을 바꾸는 방법은 무엇입니까?

그는 다음과 같은 해결책을 제안했습니다.

sed -E 's/^(power[[:blank:]]*=[[:blank:]]*).*/\1something/' TheFile

질문 1: "\1"은 무엇을 의미하나요?

Q2: 따옴표가 포함된 키-값 쌍을 처리할 때 어떻게 수정하나요? 예를 들어

MTU="1500"

- - 편집하다- -

Q3: RalfFriedl의 제안을 시도하다가 값이 아닌 변수 이름이 삽입된 것을 발견했습니다.

sed -E 's/^(MTU[[:blank:]]*=[[:blank:]]*).*/\1$NewMtu/' MyEthFile

답변1

\1이 경우 첫 번째 대괄호의 값을 삽입하는 것을 의미합니다 .(power[[:blank:]]*=[[:blank:]]*)

두 번째 질문의 경우 패턴을 사용 MTU="(.*)"하고 이를 로 \1바꿔서 1500.

관련 정보