วิธีแยกคำด้วย grep

สารบัญ:

Anonim

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

แน่นอน คุณจะต้องมีประสบการณ์บรรทัดคำสั่งและการเปิดรับ grep เพื่อค้นหาสิ่งนี้มีประโยชน์ หากคุณต้องการติดตาม คุณสามารถเปิดแอปพลิเคชัน Terminal แล้วลองใช้งานด้วยตัวเอง เนื่องจาก grep เป็นยูทิลิตี้ที่ไม่เชื่อเรื่องพระเจ้าของ OS คุณจึงสามารถใช้เคล็ดลับการยกเว้นใน Mac OS, Linux, unix หรืออะไรก็ตามที่คุณมีที่ใช้ grep

วิธีแยกคำเดี่ยวด้วย grep

วิธีที่ง่ายที่สุดในการแยกบรรทัดที่มีสตริงหรือการจับคู่ไวยากรณ์คือการใช้ grep และแฟล็ก -v

ตัวอย่างเช่น สมมติว่าเราใช้ cat เพื่อพิมพ์ไฟล์ที่บรรทัดคำสั่ง แต่เราต้องการยกเว้นทุกบรรทัดที่มีคำว่า “ThisWord” ไวยากรณ์จะมีลักษณะดังนี้:

"

ตัวอย่างแมว.txt | grep -v คำนี้"

ผลลัพธ์จะเป็นไฟล์ข้อความ example.txt แต่ไม่รวมบรรทัดใดๆ ที่มีสตริงตรงกับ “ThisWord”

คุณยังสามารถใช้ grep ได้โดยตรงกับไฟล์และแยกบรรทัดที่ตรงกันตามคำหรือไวยากรณ์ เช่น:

"

grep -v ThisWord>"

ใช้สิ่งที่ดีที่สุดสำหรับเวิร์กโฟลว์เฉพาะของคุณ

วิธียกเว้นสตริงหรือคำหลายคำด้วย grep

ตอนนี้คุณรู้วิธีแยกคำที่ตรงกันสำหรับคำเดียวแล้ว คำถามที่ชัดเจนต่อไปคือเรื่องการยกเว้นคำหลายคำด้วย grep วิธีนี้ง่ายพอๆ กัน และมีวิธีต่างๆ สองสามวิธีในการดำเนินการนี้ให้สำเร็จโดยใช้แฟล็ก -v เช่นเดียวกับแฟล็ก -e

ก่อนอื่นให้ใช้ตัวอย่างข้างต้นของการใช้ cat ในไฟล์ที่ไพพ์ไปยัง grep และไม่รวมบรรทัดที่ตรงกับสองคำ “Word1” และ “Word2” ซึ่งจะมีลักษณะดังนี้:

"

ตัวอย่างแมว.txt | grep -v -e Word1 -e Word2"

บรรทัดใดๆ ที่มีคำว่า “Word1” หรือ “Word2” จะไม่รวมอยู่ในผลงานพิมพ์

คุณยังสามารถใช้ grep กับไฟล์ได้โดยตรงเหมือนเมื่อก่อน:

"

grep -v -e Word1 -e Word2 example.txt"

อีกวิธีคือแยกสิ่งที่ต้องการแยกออกด้วย grep โดยใช้ไพพ์แยกแต่ละแมตช์ เช่น

"

grep -Ev word1|word2 example.txt"

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

ดีมาก แสดงตัวอย่างที่มีประโยชน์ของการยกเว้นข้อมูลด้วย grep!

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

ในตัวอย่างนี้ เราจะพิมพ์ประวัติคำสั่งสำหรับการจับคู่สตริงเริ่มต้น แต่ไม่รวมการจับคู่ใดๆ ที่เกี่ยวข้องกับ iTunes ตามที่กำหนดโดย “com.apple.itunes”:

"

history |grep เริ่มต้นเขียน |grep -v -e com.apple.itunes"

ดังนั้นหากคุณติดตามมาตลอด สิ่งนี้จะรายงานการดำเนินการที่ผ่านมาทั้งหมดของคำสั่ง "เขียนค่าเริ่มต้น" แต่ไม่รวมสิ่งใดก็ตามที่เกี่ยวข้องกับแอปพลิเคชัน iTunes สบายดีไหม

หากคุณมีประโยชน์อย่างยิ่งในการยกเว้นการจับคู่ด้วย grep โปรดแชร์กับเราในความคิดเห็นด้านล่าง! และถ้าคุณชอบบทความนี้ คุณแทบจะอยากอ่านบทความบรรทัดคำสั่งมากมายของเราที่นี่ ซึ่งมีอีกมากมายให้เรียนรู้!

วิธีแยกคำด้วย grep