sed는 일치하는 그룹이 있는 줄만 바꿉니다.

sed는 일치하는 그룹이 있는 줄만 바꿉니다.

현재 다음 명령이 있습니다.

sed 's/\([^C]*\)/\1AB/'

행에서 "C"의 첫 번째 인스턴스 앞에 "AB"를 삽입합니다. 그러나 "C"를 추가하지 않고 각 줄 끝에 "AB"도 추가합니다.

"C"가 발견된 경우에만 편집하도록 하려면 어떻게 해야 합니까?

답변1

그냥 교체하면 문제가 없나요 C?

sed 's/C/ABC/'

이렇게 하면 첫 번째 인스턴스만 교체됩니다( g모든 인스턴스를 교체하려는 경우 끝에 추가할 수 있음).

답변2

주소 필터가 필요합니다.

sed '/C/s/\([^C]*\)/\1AB/'

관련 정보