![sed + IP에 주석 추가 - IP가 정확히 일치하는 경우에만](https://linux55.com/image/83314/sed%20%2B%20IP%EC%97%90%20%EC%A3%BC%EC%84%9D%20%EC%B6%94%EA%B0%80%20-%20IP%EA%B0%80%20%EC%A0%95%ED%99%95%ED%9E%88%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%20%EA%B2%BD%EC%9A%B0%EC%97%90%EB%A7%8C.png)
내 목표는 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