sed + IP에 주석 추가 - IP가 정확히 일치하는 경우에만

sed + IP에 주석 추가 - IP가 정확히 일치하는 경우에만

내 목표는 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

관련 정보