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

โลโก้

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

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

grep

โปรแกรมหลักที่เราจะใช้ทำงานกับนิพจน์ทั่วไปคือเพื่อนเก่าของเรา grep. ชื่อ "grep" จริงๆ แล้วมาจากวลี "global Regular expression print" ดังนั้นเราจะเห็นได้ว่า grep เกี่ยวข้องกับนิพจน์ทั่วไป ในสาระสำคัญ, grep ค้นหาไฟล์ข้อความสำหรับข้อความที่เกิดขึ้นที่ตรงกับนิพจน์ทั่วไปที่ระบุ และส่งออกบรรทัดใดๆ ที่มีการจับคู่กับเอาต์พุตมาตรฐาน


เท่านี้เราก็ได้ใช้แล้ว grep ด้วยสตริงคงที่เช่น:


[me@linuxbox ~]$ ls /usr/bin | เกรปซิบ

[me@linuxbox ~]$ ls /usr/bin | เกรปซิบ


นี่จะแสดงรายการไฟล์ทั้งหมดในไฟล์ / usr / bin ไดเร็กทอรีที่มีชื่อประกอบด้วยสตริงย่อย “zip”

พื้นที่ grep โปรแกรมยอมรับตัวเลือกและข้อโต้แย้งด้วยวิธีนี้:

เกรป [ตัวเลือก] นิพจน์ทั่วไป [ไฟล์...]

ที่ไหน นิพจน์ทั่วไป เป็นนิพจน์ทั่วไป

นี่คือรายการที่ใช้กันทั่วไป grep ตัวเลือก:


ตารางที่ 19-1: grep Options


คำอธิบายตัวเลือก

คำอธิบายตัวเลือก

-i ละเว้นกรณี อย่าแยกความแตกต่างระหว่างอักขระตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ระบุได้ด้วย --ละเว้นกรณี.


ภาพ

-v สลับการแข่งขัน โดยทั่วไป, grep พิมพ์บรรทัดที่มีการจับคู่

ตัวเลือกนี้ทำให้เกิด grep เพื่อพิมพ์ทุกบรรทัดที่ไม่ตรงกัน ระบุได้ด้วย --invert-ตรง.


ภาพ

-c พิมพ์จำนวนการแข่งขัน (หรือไม่ตรงกันหาก -v ระบุตัวเลือกด้วย) แทนที่จะระบุบรรทัดเอง ระบุได้ด้วย --นับ.


ภาพ

-l พิมพ์ชื่อของแต่ละไฟล์ที่มีการจับคู่แทนที่จะเป็นบรรทัดเอง ระบุได้ด้วย --files-กับ-ตรงกัน.


ภาพ

-L เช่นเดียวกับตัวเลือก -l แต่พิมพ์เฉพาะชื่อไฟล์ที่ไม่ตรงกัน อาจระบุด้วย --files-without-match


ภาพ

-n นำหน้าแต่ละบรรทัดที่ตรงกันด้วยหมายเลขบรรทัดภายในไฟล์ อาจระบุด้วย --line-number.


ภาพ

-h สำหรับการค้นหาหลายไฟล์ ให้ระงับเอาต์พุตของชื่อไฟล์ ระบุได้ด้วย --no-ชื่อไฟล์.


ภาพ


เพื่อสำรวจอย่างเต็มที่มากขึ้น grepมาสร้างไฟล์ข้อความเพื่อค้นหา:

grep


[me@linuxbox ~]$ ls /bin > dirlist-bin.txt [me@linuxbox ~]$ ls /usr/bin > dirlist-usr-bin.txt [me@linuxbox ~]$ ls /sbin > dirlist-sbin.txt [me@linuxbox ~]$ ls /usr/sbin > dirlist-usr-sbin.txt [me@linuxbox ~]$ ls dirlist*.txt

dirlist-bin.txt dirlist-sbin.txt dirlist-usr-sbin.txt dirlist-usr-bin.txt

[me@linuxbox ~]$ ls /bin > dirlist-bin.txt [me@linuxbox ~]$ ls /usr/bin > dirlist-usr-bin.txt [me@linuxbox ~]$ ls /sbin > dirlist-sbin.txt [me@linuxbox ~]$ ls /usr/sbin > dirlist-usr-sbin.txt [me@linuxbox ~]$ ls dirlist*.txt

dirlist-bin.txt dirlist-sbin.txt dirlist-usr-sbin.txt dirlist-usr-bin.txt


เราสามารถค้นหารายการไฟล์ของเราได้ง่ายๆ ดังนี้:



[me@linuxbox ~]$ grep bzip dirlist*.txt

dirlist-bin.txt:bzip2 dirlist-bin.txt:bzip2กู้คืน

[me@linuxbox ~]$ grep bzip dirlist*.txt

dirlist-bin.txt:bzip2 dirlist-bin.txt:bzip2กู้คืน


ในตัวอย่างนี้ grep ค้นหาไฟล์ที่อยู่ในรายการทั้งหมดสำหรับสตริง บีซิป และพบสองรายการที่ตรงกันทั้งในไฟล์ dirlist-bin.txt. หากเราสนใจเฉพาะรายการไฟล์ที่มีการจับคู่มากกว่าตัวที่ตรงกัน เราสามารถระบุ -l ตัวเลือก:



[me@linuxbox ~]$ grep -l bzip dirlist*.txt

dirlist-bin.txt

[me@linuxbox ~]$ grep -l bzip dirlist*.txt

dirlist-bin.txt


ในทางกลับกัน หากเราต้องการดูเฉพาะรายการไฟล์ที่ไม่มีข้อมูลที่ตรงกัน เราสามารถทำได้ดังนี้:



[me@linuxbox ~]$ grep -L bzip dirlist*.txt

dirlist-sbin.txt dirlist-usr-bin.txt dirlist-usr-sbin.txt

[me@linuxbox ~]$ grep -L bzip dirlist*.txt

dirlist-sbin.txt dirlist-usr-bin.txt dirlist-usr-sbin.txt


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