![sed는 일치하는 그룹이 있는 줄만 바꿉니다.](https://linux55.com/image/52292/sed%EB%8A%94%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%20%EA%B7%B8%EB%A3%B9%EC%9D%B4%20%EC%9E%88%EB%8A%94%20%EC%A4%84%EB%A7%8C%20%EB%B0%94%EA%BF%89%EB%8B%88%EB%8B%A4..png)
현재 다음 명령이 있습니다.
sed 's/\([^C]*\)/\1AB/'
행에서 "C"의 첫 번째 인스턴스 앞에 "AB"를 삽입합니다. 그러나 "C"를 추가하지 않고 각 줄 끝에 "AB"도 추가합니다.
"C"가 발견된 경우에만 편집하도록 하려면 어떻게 해야 합니까?
답변1
그냥 교체하면 문제가 없나요 C
?
sed 's/C/ABC/'
이렇게 하면 첫 번째 인스턴스만 교체됩니다( g
모든 인스턴스를 교체하려는 경우 끝에 추가할 수 있음).
답변2
주소 필터가 필요합니다.
sed '/C/s/\([^C]*\)/\1AB/'