ใหม่สำหรับ Linux และวิธีเดียวที่ฉันจะทำให้สิ่งนี้ใช้งานได้คือการใช้คำสั่ง awk โชคไม่ดีที่ทิศทางหลักระบุว่าไม่ใช้ awk
นี่คือสิ่งที่ฉันได้รับ
#!/bin/sh
#comment เขียน RegEx เดียวให้ตรงกับบรรทัดที่เข้าถึงพอร์ต 22 และเฉพาะแพ็กเก็ตเหล่านั้น
grep '\s22\s' hw0206.txt | awk {'พิมพ์ $4'}
#comment grep ส่งคืนทั้งบรรทัดด้วยสตริงที่ตรงกัน
#comment \s22\s นิพจน์ทั่วไปเพื่อจับคู่สตริงใด ๆ ที่มี 22 นำหน้าหรือต่อท้ายด้วยช่องว่าง
คำแนะนำ
เขียน RegEx เดียวเพื่อให้ตรงกับบรรทัดที่เข้าถึงพอร์ต 22 และเฉพาะแพ็กเก็ตเหล่านั้น จากนั้นส่งคืนที่อยู่ IP
ไฟล์อินพุต (hw0206.txt) ผลลัพธ์ที่คาดหวังของสคริปต์
วันที่ เวลา โปรโตคอล ที่อยู่ IP ขนาดพอร์ตแพ็คเก็ต
2022-02-21 19:22:19 TCP 22.101.2.24 22 24
2018-22-22 02:25:12 UDP 10.221.7.22 2135 222
2200-05-22 22:26:22 UDP 22.122.6.62 2160 22
2012-22-20 15:43:22 TCP 10.121.7.222 22 122
1228-02-10 02:22:02 UDP 22.102.2.62 2089 22
วันที่ เวลา โปรโตคอล ที่อยู่ IP ขนาดพอร์ตแพ็คเก็ต
2022-02-21 19:22:19 TCP 22.101.2.24 22 24
2018-22-22 02:25:12 UDP 10.221.7.22 2135 222
2200-05-22 22:26:22 UDP 22.122.6.62 2160 22
2012-22-20 15:43:22 TCP 10.121.7.222 23 122
1228-02-10 02:22:02 TCP 22.102.2.62 22 22
2100-05-25 21:26:22 UDP 22.112.63.62 2122 22