/etc/hosts
쉘 스크립트를 사용하여 IP 주소와 호스트 이름을 인쇄 하고 싶습니다
/etc/hosts
문서:
## #For example:
## #102.54.94.97 rhino.acme.com # source server
## #38.25.63.10 x.acme.com # x client host
## #localhost name resolution is handled within DNS itself.
## #127.0.0.1 localhost
## #::1 localhost
111.11.1.1 aaaa.aa.aa
111.11.1.1 aaaa.aa.aa
111.11.1.1 aaaa.aa.aa
111.11.1.1 aaaa.aa.aa
# #122.55.80.97 bbb.bb.bb
# #122.55.80.98 ccc.cc.cc
모든 줄이 아닌 유효한 IP 주소와 호스트 이름을 출력해야 합니다.
111.11.1.1 aaaa.aa.aa
111.11.1.1 aaaa.aa.aa
111.11.1.1 aaaa.aa.aa
111.11.1.1 aaaa.aa.aa
모든 줄은 아니지만
답변1
주석 처리된 빈 줄 양식을 제거합니다 /etc/hosts
.
sed -e 's/#.*//' -e 's/[[:blank:]]*$//' -e '/^$/d' /etc/hosts
sed
이는 다음 순서로 세 가지 표현식을 사용합니다.
#
(포함 ) 뒤에 있는 모든 항목을 제거합니다#
.- 줄 끝의 공백(공백 또는 탭)을 제거합니다.
- 빈 줄을 제거하세요.
예제 파일이 주어지면 이는 다음과 같습니다.
111.11.1.1 aaaa.aa.aa
111.11.1.1 aaaa.aa.aa
111.11.1.1 aaaa.aa.aa
111.11.1.1 aaaa.aa.aa
이것은 분명히 노력하지 않습니다확인하다주소와 이름을 남겨주세요.
답변2
이 시도
sed -e '/^#/d' -e '/^\s*$/d' /etc/hosts
#으로 시작하는 모든 줄과 빈 줄이 제거됩니다.