แสดงเส้นก่อนและหลังการแข่งขันผ่าน Grep

Show Lines Before After Match Via Grep



Grep ถูกใช้อย่างกว้างขวางในระบบ Linux เมื่อทำงานกับไฟล์บางไฟล์ ค้นหารูปแบบเฉพาะ และอื่นๆ อีกมากมาย ครั้งนี้ เราใช้คำสั่ง grep เพื่อแสดงบรรทัดก่อนและหลังคีย์เวิร์ดที่ตรงกันซึ่งใช้ในไฟล์บางไฟล์ เพื่อจุดประสงค์นี้ เราจะใช้แฟล็ก -A, -B และ -C ตลอดทั้งคู่มือบทช่วยสอนของเรา ดังนั้นคุณต้องดำเนินการแต่ละขั้นตอนเพื่อความเข้าใจที่ดีขึ้น ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งระบบ Ubuntu 20.04 Linux แล้ว

ประการแรก คุณต้องเปิดเทอร์มินัลบรรทัดคำสั่ง Linux เพื่อเริ่มทำงานกับ grep ขณะนี้คุณอยู่ที่โฮมไดเร็กทอรีของระบบ Ubuntu ของคุณทันทีหลังจากเปิดเทอร์มินัลบรรทัดคำสั่ง ดังนั้น ลองแสดงรายการไฟล์และโฟลเดอร์ทั้งหมดในโฮมไดเร็กทอรีของระบบ Linux ของคุณโดยใช้คำสั่ง ls ด้านล่าง และคุณจะได้ทั้งหมด คุณจะเห็นว่าเรามีไฟล์ข้อความและบางโฟลเดอร์อยู่ในนั้น







ลส



ตัวอย่างที่ 01: การใช้ '-A' และ '-B'

จากไฟล์ข้อความที่แสดงด้านบน เราจะมาดูไฟล์เหล่านี้บางส่วนและลองใช้คำสั่ง grep กับไฟล์เหล่านี้ มาเปิดไฟล์ข้อความ one.txt ก่อนโดยใช้คำสั่ง cat ยอดนิยมด้านล่าง:



$แมวone.txt





ขั้นแรกเราจะเห็นคำบางคำที่ตรงกันในไฟล์ข้อความนี้โดยใช้คำสั่ง grep ดังนี้ เรากำลังค้นหาคำที่เราอยู่ในไฟล์ข้อความ one.txt โดยใช้คำสั่ง grep ผลลัพธ์แสดงสองบรรทัดจากไฟล์ข้อความที่มีเราอยู่ในนั้น

$กริปเรา one.txt



ในตัวอย่างนี้ เราจะแสดงบรรทัดก่อนและหลังการจับคู่คำเฉพาะในไฟล์ข้อความบางไฟล์ ดังนั้นโดยใช้ไฟล์ข้อความเดียวกัน one.txt เราได้จับคู่คำที่เราแสดง 3 บรรทัดก่อนหน้านั้นดังนี้ ธง -B ย่อมาจาก Before ผลลัพธ์แสดงเพียง 2 บรรทัดก่อนบรรทัดคำเฉพาะ เนื่องจากไฟล์ไม่มีบรรทัดเพิ่มเติมก่อนบรรทัดของคำเฉพาะ นอกจากนี้ยังแสดงบรรทัดเหล่านั้นที่มีคำเฉพาะนั้นอยู่ในนั้น

$กริป-NS3เรา one.txt

ลองใช้คีย์เวิร์ดเดียวกับเราในไฟล์นี้เพื่อแสดง 3 บรรทัดหลังบรรทัดที่มีคำว่า we ธง -A นำเสนอ After ผลลัพธ์จะแสดงเพียง 2 บรรทัดอีกครั้งเนื่องจากไม่มีบรรทัดเพิ่มเติมในไฟล์

$กริป-ถึง3เรา one.txt

ดังนั้น ให้เราใช้คำหลักใหม่เพื่อจับคู่และแสดงบรรทัดหรือแถวก่อนและหลังบรรทัดที่อยู่ ดังนั้นเราจึงใช้คำว่า can มาจับคู่กัน หมายเลขบรรทัดจะเหมือนกันในกรณีนี้ สามารถแสดง 3 บรรทัดหลังคำที่ตรงกันด้านล่างโดยใช้คำสั่ง grep

$กริป-ถึง3สามารถ one.txt

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

$กริป-NS3สามารถ one.txt

ตัวอย่างที่ 02: การใช้ '-A' และ '-B'

ลองใช้ไฟล์ข้อความอื่น two.txt จากโฮมไดเร็กทอรีและแสดงเนื้อหาโดยใช้คำสั่ง cat ด้านล่าง

$แมวtwo.txt

ให้แสดง 5 บรรทัดก่อนคำว่า Most จากไฟล์ two.txt โดยใช้คำสั่ง grep ผลลัพธ์จะแสดง 5 บรรทัดก่อนที่บรรทัดจะมีคำเฉพาะ

$กริป-NS5ส่วนใหญ่ two.txt

คำสั่ง grep เพื่อแสดง 5 บรรทัดหลังคำว่า Most จากไฟล์ข้อความ two.txt ได้รับด้านล่าง

$กริป-ถึง5ส่วนใหญ่ two.txt

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

$กริป-NS2ของ two.txt

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

$กริป-ถึง2ของ two.txt

ตัวอย่างที่ 03: การใช้ '-C'

แฟล็กอื่น -C ถูกใช้เพื่อแสดงบรรทัดก่อนและหลังคำที่ตรงกัน มาแสดงเนื้อหาของไฟล์ one.txt โดยใช้คำสั่ง cat

$แมวone.txt

เราเลือกสังคมเป็นคำสำคัญที่จะจับคู่ คำสั่ง grep ด้านล่างจะแสดง 2 บรรทัดก่อนและ 2 บรรทัดหลังบรรทัดที่มีคำว่าสังคมอยู่ในนั้น ผลลัพธ์จะแสดงหนึ่งบรรทัดก่อนบรรทัดคำเฉพาะและ 2 บรรทัดหลังจากนั้น

$กริป-ค2สังคม one.txt

มาดูเนื้อหาของไฟล์ two.txt โดยใช้คำสั่ง cat ด้านล่าง

$แมวtwo.txt

ในภาพประกอบนี้ เราใช้บทกวีเป็นคำหลักในการจับคู่ ดังนั้นให้รันคำสั่งด้านล่างสำหรับสิ่งนี้ ผลลัพธ์จะแสดงสองบรรทัดก่อนและสองบรรทัดหลังคำที่ตรงกัน

$กริป-ค2บทกวี two.txt

ลองใช้คำหลักอีกหนึ่งคำจากไฟล์ two.txt ที่จะจับคู่กัน คราวนี้เราใช้ธรรมชาติเป็นคีย์เวิร์ด ดังนั้น ให้ลองใช้คำสั่งด้านล่างในขณะที่ใช้ -C เป็นแฟล็กที่มีลักษณะของคีย์เวิร์ดจากไฟล์ two.txt คราวนี้ เอาต์พุตมีเอาต์พุตมากกว่าสองบรรทัด เนื่องจากไฟล์มีคำว่า nature มากกว่าหนึ่งครั้ง นั่นเป็นเหตุผลที่อยู่เบื้องหลัง ลักษณะคีย์เวิร์ดซึ่งมาก่อนจะมีสองบรรทัดก่อนและสองบรรทัดต่อจากนี้ ในขณะที่คำที่สองตรงกับคำสำคัญเดียวกัน nature มีสองบรรทัดก่อนหน้า แต่ไม่มีบรรทัดต่อจากนี้เพราะอยู่ที่บรรทัดสุดท้ายของไฟล์

$กริป-ค2บทกวี two.txt

บทสรุป

เราประสบความสำเร็จในการแสดงบรรทัดก่อนและหลังคำเฉพาะในขณะที่ใช้คำสั่ง grep