내 /etc/hosts는 다음과 같습니다
1.2.3.4 abc.xyz.com # comment section
2.3.4.5 bcd.xyz.com # comment section
2.3.4.6 cde.xyz.com # comment section
호스트 이름은 사용자 입력이 됩니다. /etc/hosts를 읽고, 이 항목이 존재하는지 확인하고, 사용자가 제공한 새 호스트로 교체한 경우 새 호스트와 호스트 이름의 IP를 교체하고 싶습니다. 편집 후 댓글을 유지하려면.
"test.sh - abc.xyz.com 대체 - qwe.xyz.com 사용" 과 같습니다 .
산출:
5.6.7.8 qwe.xyz.com #comment section
답변1
단순한sed
치환:
sed -Ei 's/^([0-9]+\.){3}[0-9]+ abc\.xyz\.com/5.6.7.8 qwe.xyz.com/' /etc/hosts
최종 /etc/hosts
콘텐츠:
5.6.7.8 qwe.xyz.com # comment section
2.3.4.5 bcd.xyz.com # comment section
2.3.4.6 cde.xyz.com # comment section