다음과 같은 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'