단일 IP를 포함하는 Cat/grep 전용 라인

단일 IP를 포함하는 Cat/grep 전용 라인

이런 파일이 있어요

Script http://127.0.0.1/ blabla
127.0.0.1
Script 127.0.0.2/index.html bla bla
127.0.0.2
Script 127.0.0.3/contact bla bla
Script 127.0.0.4/settings bla bla
127.0.0.4

모든 행의 모든 ​​IP가 아닌 단일 IP만 포함하는 행만 가져오고 싶습니다.

어떻게 해야 하나요?

결과는

127.0.0.1
127.0.0.2
127.0.0.4

답변1

cat유틸리티는 제공된 데이터를 연결하기만 하므로 여기서는 별로 쓸모가 없습니다.

구성 요소에 대해 약간 엉성해도 괜찮다고 가정합니다.효과적인IP 주소:

grep -Ex '([0-9]{1,3}\.){3}[0-9]{1,3}' file

이는 주어진 정규식과 일치하는 모든 줄을 일치시키고 인쇄합니다(그리고 다른 줄은 삭제합니다).

좀 더 엉성한 해결책은 점과 숫자가 아닌 줄을 삭제하는 것입니다.

grep -v '[^0-9.]' file

요구 사항에 따라 그 중 하나로 충분합니다.

완전히 올바른 정규식(잘못된 IP 주소와 일치하지 않음)을 위해 다음을 사용할 수 있습니다.

grep -Ex '((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])' file

관련 정보