ด้วยgrep
ไวยากรณ์ต่อไปนี้ฉันต้องการจับคู่ที่อยู่ IP ทั้งหมดในไฟล์ (จากksh
สคริปต์)
grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' file
ปัญหา: มันตรงกับคำ (IP) ที่มีมากกว่า 4 octets:
1.1.1.1.1
หรือ
192.1.1.1.160
ฉันจะจับคู่IP ที่ถูกต้องและที่อยู่ IP กับ 4 octets ได้อย่างไร ฉันยังสามารถใช้ Perl - โซลูชันไวยากรณ์หนึ่งบรรทัดถ้าgrep
ไม่ทำงาน
192.1.4097
ถูกต้องและยอมรับโดย Linux glibc และ Windows
0x7f.1
และ0177.1
999.999.999.999
กัน