목록에서 IP/마스크를 어떻게 인쇄하나요?

목록에서 IP/마스크를 어떻게 인쇄하나요?

다음과 같은 IP 및 IP/마스크 목록이 있습니다.

1.1.1.1
2.2.2.2
192.168.0.1
223.0.0.0/15
213.32.7.0/24
...

IP/MASK 라인만 인쇄하는 방법은 무엇입니까? 이 명령을 사용 sed '/^\d{1,3}(\.\d{1,3}){3}\/\d{1,2}$/p' list.txt 하지만 항상 모든 목록이 인쇄됩니다. 감사해요!

답변1

넷마스크와 일치하는 숫자, 슬래시 및 숫자를 찾을 수 있습니다. 다음과 같이 하면 됩니다.

grep -o "\d\/\d"

또는

grep -o "[0-9]\/[0-9]"

답변2

그냥 슬래시로 grep하세요.grep "/" list.txt

답변3

sed가 이를 이해하지 못하기 때문에 \d정규식 =>을 변경해야 합니다 . [0-9]sed를 호출하고 대신 -E확장 정규 표현식을 켜도록 선택해야 합니다.{\{

sed -nEe '/^[0-9]{1,3}(\.[0-9]{1,3}){3}\/[0-9]{1,2}$/p'

관련 정보