쉘 스크립트를 사용하여 /etc/hosts의 모든 IP 주소와 호스트 이름을 인쇄하고 싶습니다.

쉘 스크립트를 사용하여 /etc/hosts의 모든 IP 주소와 호스트 이름을 인쇄하고 싶습니다.

/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이는 다음 순서로 세 가지 표현식을 사용합니다.

  1. #(포함 ) 뒤에 있는 모든 항목을 제거합니다 #.
  2. 줄 끝의 공백(공백 또는 탭)을 제거합니다.
  3. 빈 줄을 제거하세요.

예제 파일이 주어지면 이는 다음과 같습니다.

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

#으로 시작하는 모든 줄과 빈 줄이 제거됩니다.

관련 정보