내 목표는 sed를 사용하여 IP에 "#"을 추가하는 것입니다.
하지만 전제는 IP가 정확히 일치한다는 것입니다! ! !
예를 들어:
sed 's/72.16.90.12/#72.16.90.12/g' /etc/hosts
more /etc/hosts
72.16.90.121 host1
172.16.90.12 host2
다음 sed 명령은 일치하지 않더라도 호스트 파일의 IP 주소에 "#"을 추가합니다.
IP가 정확히 동일한 경우에만 "#"을 추가하려면 sed 구문에 무엇을 추가해야 합니까?
답변1
당신은 추가할 수 있습니다단어 경계, .
다음으로 변경되었습니다 \.
(문자가 아닌 리터럴 마침표와 일치하도록).
sed 's/\b72\.16\.90\.12\b/#&/g'
또한 &
저장을 위한 사용은 반복해서 교체해야 한다는 점에 유의하세요. 이 경우 g
호스트 주소가 한 줄에 하나씩 있으므로 수정자가 필요하지 않을 수도 있습니다.
답변2
IP=10.10.10.10 # change to yours
sed -i -e "/${IP}/s/${IP}/#${IP}/" /etc/hosts