ด้วย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กัน