เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | เนื้อหา | ถัดไป>

ตรวจสอบรายชื่อโทรศัพท์ด้วย grep

ในตัวอย่างก่อนหน้านี้ เราดูหมายเลขโทรศัพท์เดียวและตรวจสอบการจัดรูปแบบที่เหมาะสม สถานการณ์ที่สมจริงยิ่งขึ้นคือการตรวจสอบรายการตัวเลขแทน เรามาสร้างรายการกัน เราจะทำสิ่งนี้โดยท่องคาถาอาคมไปยังบรรทัดคำสั่ง มันจะเป็นเวทย์มนตร์เพราะเราไม่ได้ครอบคลุมคำสั่งส่วนใหญ่ที่เกี่ยวข้อง แต่ไม่ต้องกังวล เราจะไปถึงที่นั่นในบทต่อๆ ไป นี่คือคาถา:



[me@linuxbox ~]$ สำหรับฉันใน {1..10}; ทำ echo "(${RANDOM:0:3}) ${RANDO M:0:3}-${RANDOM:0:4}" >> phonelist.txt; เสร็จแล้ว

[me@linuxbox ~]$ สำหรับฉันใน {1..10}; ทำ echo "(${RANDOM:0:3}) ${RANDO M:0:3}-${RANDOM:0:4}" >> phonelist.txt; เสร็จแล้ว


คำสั่งนี้จะสร้างไฟล์ชื่อ phonelist.txt ที่มีหมายเลขโทรศัพท์สิบหมายเลข แต่ละครั้งที่คำสั่งซ้ำ ตัวเลขอีกสิบตัวจะถูกเพิ่มลงในรายการ เรายังเปลี่ยนค่าได้ 10 ใกล้กับจุดเริ่มต้นของคำสั่งเพื่อสร้างหมายเลขโทรศัพท์มากหรือน้อย อย่างไรก็ตาม หากเราตรวจสอบเนื้อหาของไฟล์ เราพบว่าเรามีปัญหา:



ภาพ

[me@linuxbox ~]$ แมว phonelist.txt


(232)

298-2265

(624)

381-1078

(540)

126-1980

(874)

163-2885

(286)

254-2860

(292)

108-518

(129)

44-1379

(458)

273-1642

(686)

299-8268

(198)

307-2440


ตัวเลขบางตัวมีรูปแบบไม่ถูกต้อง ซึ่งเหมาะสำหรับจุดประสงค์ของเรา เนื่องจากเราจะใช้

grep เพื่อตรวจสอบพวกเขา

วิธีตรวจสอบที่มีประโยชน์วิธีหนึ่งคือการสแกนไฟล์เพื่อหาหมายเลขที่ไม่ถูกต้องและแสดงรายการผลลัพธ์:



[me@linuxbox ~]$ grep -Ev '^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$'

phonelist.txt (292) 108-518

(129) 44-1379

[me@linuxbox ~]$

[me@linuxbox ~]$ grep -Ev '^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$'

phonelist.txt (292) 108-518

(129) 44-1379

[me@linuxbox ~]$


ที่นี่เราใช้ -v ตัวเลือกในการสร้างการจับคู่แบบผกผันเพื่อให้เราจะส่งออกเฉพาะบรรทัดในรายการที่ไม่ตรงกับนิพจน์ที่ระบุ นิพจน์ประกอบด้วยอักขระเมตาของ anchor ที่ปลายแต่ละด้านเพื่อให้แน่ใจว่าตัวเลขนั้นไม่มีอักขระพิเศษที่ปลายด้านใดด้านหนึ่ง นิพจน์นี้ยังต้องการให้วงเล็บเป็นตัวเลขที่ถูกต้อง ไม่เหมือนกับตัวอย่างหมายเลขโทรศัพท์ก่อนหน้านี้


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: