![목록에서 IP/마스크를 어떻게 인쇄하나요?](https://linux55.com/image/114532/%EB%AA%A9%EB%A1%9D%EC%97%90%EC%84%9C%20IP%2F%EB%A7%88%EC%8A%A4%ED%81%AC%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%9D%B8%EC%87%84%ED%95%98%EB%82%98%EC%9A%94%3F.png)
다음과 같은 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'