이런 파일이 있어요
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