SED - 특수 문자(#, %) 찾기 및 바꾸기

SED - 특수 문자(#, %) 찾기 및 바꾸기

나는 이것이 매우 간단한 질문이라는 것을 알고 있지만 해결책을 찾기 위해 고심하고 있습니다.

파일에서 다음 부분을 자동으로 찾아서 바꿔야 합니다 /etc/aliases.

# Person who should get root's mail
#root:   marc

다음과 같아야 합니다.

# Person who should get root's mail
root:  [email protected]

그리고 나는 해결책을 찾지 못했습니다. 몇 가지 제안을 해주실 수 있나요? 이것 은 필요 하지 않습니다 sed.

답변1

GNU 시스템에서는 다음 명령을 사용할 수 있습니다.

sed -i '/^#[[:blank:]]Person/{n;s/#root:[[:blank:]]\+marc/root:\[email protected]/;}' file

로 시작하는 줄을 검색합니다 # Person. 그런 다음 다음 줄로 전환하고 #root:<blanks>marc로 바꿉니다 root:<tab> .... 이 -i플래그는 파일을 그 자리에서 편집합니다.

-i, \+\tGNU 확장입니다. 표준 등가물은 \+더 장황합니다 \{1,\}. 파일을 제자리에서 편집하려면 임시 파일을 사용해야 합니다. 표준에 해당하는 것은 \t탭 문자를 문자 그대로 삽입하는 것입니다.

관련 정보