![단일 IP를 포함하는 Cat/grep 전용 라인](https://linux55.com/image/135085/%EB%8B%A8%EC%9D%BC%20IP%EB%A5%BC%20%ED%8F%AC%ED%95%A8%ED%95%98%EB%8A%94%20Cat%2Fgrep%20%EC%A0%84%EC%9A%A9%20%EB%9D%BC%EC%9D%B8.png)
이런 파일이 있어요
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