ในบทความต่อไปนี้เราจะเห็นบางส่วน เครื่องมือบรรทัดคำสั่งที่ใช้ในการค้นหาสตริงหรือรูปแบบที่ตรงกันภายในไฟล์ข้อความ. โดยทั่วไปเครื่องมือเหล่านี้จะใช้ร่วมกับนิพจน์ทั่วไปโดยย่อว่า REGEXซึ่งเป็นสตริงเฉพาะเพื่ออธิบายรูปแบบการค้นหา
นิพจน์ทั่วไปคือรูปแบบที่ใช้ในการค้นหาการรวมกันของอักขระภายในสตริงข้อความ นิพจน์ทั่วไปเป็นวิธีที่ยืดหยุ่นมากในการค้นหาหรือจดจำสตริงข้อความ. แม้ว่าในบรรทัดต่อไปนี้เราจะไม่เห็นนิพจน์ทั่วไป แต่เราจะใช้รูปแบบหรือสตริง
ค้นหาสตริงหรือรูปแบบจากเทอร์มินัล
คำสั่ง Grep
Grep เป็นตัวย่อของ พิมพ์นิพจน์ทั่วไปทั่วโลก. นี่คือเครื่องมือบรรทัดคำสั่งที่มีประสิทธิภาพซึ่งมีประโยชน์เมื่อค้นหาสตริงหรือรูปแบบเฉพาะในไฟล์ ด้วย grep เราจะสามารถใช้ฟังก์ชั่นที่หลากหลายเช่นที่เพื่อนร่วมงานอธิบายให้เราฟังในบล็อกนี้เมื่อไม่นานมานี้
ไวยากรณ์สำหรับการใช้คำสั่ง grep นั้นค่อนข้างง่าย:
grep PATRON [RUTA AL ARCHIVO]
ตัวอย่างเช่นในการค้นหาสตริง 'อูบุนตู'ในไฟล์ที่ในตัวอย่างนี้เราจะเรียก text.txtโดยไม่คำนึงถึงความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็กในเทอร์มินัล (Ctrl + Alt + T) เราจะต้องดำเนินการคำสั่งเท่านั้น:
grep -i Ubuntu texto.txt
คำสั่ง sed
ความกระหายนั้นสั้นสำหรับ ตัวแก้ไขกระแส. เป็นอีกหนึ่งเครื่องมือที่มีประโยชน์สำหรับเทอร์มินัลที่เราสามารถจัดการกับข้อความในไฟล์ได้ Sed ค้นหากรองและแทนที่สตริงในไฟล์ที่กำหนด.
คำสั่ง sed ตามค่าเริ่มต้นจะพิมพ์เอาต์พุตในรูปแบบ STDOUT (เอาต์พุตมาตรฐาน). นี่หมายความว่าผลลัพธ์ของการดำเนินการถูกพิมพ์ไปยังเทอร์มินัลแทนที่จะถูกบันทึกลงในไฟล์
สามารถใช้คำสั่ง Sed ได้ดังนี้:
sed -OPCIONES COMANDO [RUTA AL ARCHIVO]
ตัวอย่างเช่นเพื่อแทนที่เหตุการณ์ทั้งหมดของ 'ลินุกซ์"ในข้อความโดย"ลินุกซ์'คำสั่งที่จะใช้จะเป็นดังต่อไปนี้:
sed 's/Linux/GnuLinux/g' texto.txt
หากสิ่งที่เรากำลังมองหาคือ เปลี่ยนทิศทางผลลัพธ์ไปยังไฟล์แทนที่จะพิมพ์ไปที่เทอร์มินัลเราจะใช้เครื่องหมายเปลี่ยนเส้นทางดังนี้:
sed 's/Linux/GnuLinux/g' texto.txt > salida.txt
ผลลัพธ์ของคำสั่งจะถูกบันทึกไว้ในไฟล์ output.txt แทนที่จะพิมพ์บนหน้าจอ
หากต้องการดูตัวเลือกเพิ่มเติมคุณสามารถทำได้ ปรึกษาหน้าคน:
man sed
อ๊าก
Ack เป็นเครื่องมือบรรทัดคำสั่งที่รวดเร็วที่เขียนด้วย Perl ถือเป็นการทดแทนที่เป็นมิตรสำหรับยูทิลิตี้ grepซึ่งยังสร้างผลลัพธ์ในรูปแบบที่ดึงดูดสายตาอีกด้วย
ไปยัง ติดตั้ง ack ในระบบของเราเราจะต้องดำเนินการในเทอร์มินัล (Ctrl + Alt + T):
sudo apt install ack
คำสั่ง Ack จะค้นหาไฟล์หรือไดเร็กทอรีสำหรับบรรทัดที่มีรายการที่ตรงกันสำหรับเกณฑ์การค้นหา. จากนั้นไฮไลต์สตริงที่เกี่ยวข้อง เครื่องมือนี้มีความสามารถในการแยกแยะไฟล์ตามนามสกุล
ไวยากรณ์ของคำสั่ง Ack จะเป็นดังนี้
ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
ตัวอย่างเช่นในการค้นหาคำ ลินุกซ์ ในไฟล์เราจะต้องดำเนินการ:
ack Linux texto.txt
เครื่องมือค้นหาค่อนข้างฉลาดและ หากผู้ใช้ไม่ได้จัดหาไฟล์หรือไดเร็กทอรีใด ๆ ผู้ใช้จะค้นหาไดเร็กทอรีปัจจุบันและไดเร็กทอรีย่อยสำหรับรูปแบบการค้นหา.
ในตัวอย่างต่อไปนี้ไม่มีการจัดเตรียมไฟล์หรือไดเร็กทอรี Ack ตรวจพบไฟล์ที่มีอยู่ในไดเร็กทอรีโดยอัตโนมัติและค้นหารูปแบบที่ตรงกัน:
ack Linux
Ripgrepgre
Ripgrepgre เป็นยูทิลิตี้ข้ามแพลตฟอร์มเพื่อค้นหารูปแบบการแสดงออกปกติ. เร็วกว่าเครื่องมือค้นหาทั้งหมดที่กล่าวถึงข้างต้นและค้นหาไดเรกทอรีซ้ำ ๆ สำหรับรูปแบบการจับคู่ นอกจากนี้ยังช่วยให้คุณค้นหาประเภทไฟล์ที่ต้องการได้อีกด้วย โดยค่าเริ่มต้น ripgrep จะข้ามไบนารีและไฟล์ / ไดเรกทอรีที่ซ่อนอยู่
ไปยัง ติดตั้ง ripgrep บนระบบสิ่งที่คุณต้องทำคือรันคำสั่งต่อไปนี้ในเทอร์มินัล (Ctrl + Alt + T):
sudo apt install ripgrep
ไวยากรณ์สำหรับการใช้ ripgrep ค่อนข้างตรงไปตรงมา:
rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
หากเราต้องการค้นหาห่วงโซ่ 'ลินุกซ์'ในไฟล์ที่อยู่ภายในไดเร็กทอรีปัจจุบันเราจะต้องดำเนินการคำสั่งเท่านั้น:
rg Linux
หากต้องการดูตัวเลือกเพิ่มเติมผู้ใช้สามารถใช้ หน้าคน:
man rg
ผู้ค้นหาเงิน
ไปยัง ติดตั้งเครื่องมือนี้ใน Ubuntu เราจะต้องเปิดเทอร์มินัลเท่านั้น (Ctrl + Alt + T) และเขียนคำสั่ง:
sudo apt install silversearcher-ag
Silver Searcher เป็นเครื่องมือค้นหาแบบข้ามแพลตฟอร์มแบบโอเพ่นซอร์สคล้ายกับ ack แต่เน้นที่ความเร็ว. ทำให้ง่ายต่อการค้นหาสตริงเฉพาะภายในไฟล์ในเวลาที่สั้นที่สุด ไวยากรณ์ที่จะใช้คือ:
ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo
ตัวอย่างเช่นหากต้องการค้นหา "ลินุกซ์'ในไฟล์ text.txtเราจะต้องเขียนในเทอร์มินัล (Ctrl + Alt + T):
ag Linux texto.txt
หากต้องการดูตัวเลือกเพิ่มเติมเราสามารถปรึกษาได้ที่ไฟล์ หน้าคน:
man ag
นี่เป็นเพียงเครื่องมือบรรทัดคำสั่งที่ใช้บ่อยที่สุดสำหรับการค้นหากรองและจัดการข้อความใน Linux