나는 이것이 매우 간단한 질문이라는 것을 알고 있지만 해결책을 찾기 위해 고심하고 있습니다.
파일에서 다음 부분을 자동으로 찾아서 바꿔야 합니다 /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
, \+
및 \t
GNU 확장입니다. 표준 등가물은 \+
더 장황합니다 \{1,\}
. 파일을 제자리에서 편집하려면 임시 파일을 사용해야 합니다. 표준에 해당하는 것은 \t
탭 문자를 문자 그대로 삽입하는 것입니다.