ค้นหาสตริงหรือรูปแบบภายในข้อความธรรมดาจากเทอร์มินัล

เกี่ยวกับการค้นหาสตริงหรือรูปแบบ

ในบทความต่อไปนี้เราจะเห็นบางส่วน เครื่องมือบรรทัดคำสั่งที่ใช้ในการค้นหาสตริงหรือรูปแบบที่ตรงกันภายในไฟล์ข้อความ. โดยทั่วไปเครื่องมือเหล่านี้จะใช้ร่วมกับนิพจน์ทั่วไปโดยย่อว่า REGEXซึ่งเป็นสตริงเฉพาะเพื่ออธิบายรูปแบบการค้นหา

นิพจน์ทั่วไปคือรูปแบบที่ใช้ในการค้นหาการรวมกันของอักขระภายในสตริงข้อความ นิพจน์ทั่วไปเป็นวิธีที่ยืดหยุ่นมากในการค้นหาหรือจดจำสตริงข้อความ. แม้ว่าในบรรทัดต่อไปนี้เราจะไม่เห็นนิพจน์ทั่วไป แต่เราจะใช้รูปแบบหรือสตริง

ค้นหาสตริงหรือรูปแบบจากเทอร์มินัล

คำสั่ง Grep

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

ไวยากรณ์สำหรับการใช้คำสั่ง grep นั้นค่อนข้างง่าย:

grep PATRON [RUTA AL ARCHIVO]

ตัวอย่างเช่นในการค้นหาสตริง 'อูบุนตู'ในไฟล์ที่ในตัวอย่างนี้เราจะเรียก text.txtโดยไม่คำนึงถึงความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็กในเทอร์มินัล (Ctrl + Alt + T) เราจะต้องดำเนินการคำสั่งเท่านั้น:

ข้อความ grep -i

grep -i Ubuntu texto.txt

คำสั่ง sed

ความกระหายนั้นสั้นสำหรับ ตัวแก้ไขกระแส. เป็นอีกหนึ่งเครื่องมือที่มีประโยชน์สำหรับเทอร์มินัลที่เราสามารถจัดการกับข้อความในไฟล์ได้ Sed ค้นหากรองและแทนที่สตริงในไฟล์ที่กำหนด.

คำสั่ง sed ตามค่าเริ่มต้นจะพิมพ์เอาต์พุตในรูปแบบ STDOUT (เอาต์พุตมาตรฐาน). นี่หมายความว่าผลลัพธ์ของการดำเนินการถูกพิมพ์ไปยังเทอร์มินัลแทนที่จะถูกบันทึกลงในไฟล์

สามารถใช้คำสั่ง Sed ได้ดังนี้:

sed -OPCIONES COMANDO [RUTA AL ARCHIVO]

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

คำสั่ง sed

sed 's/Linux/GnuLinux/g' texto.txt

หากสิ่งที่เรากำลังมองหาคือ เปลี่ยนทิศทางผลลัพธ์ไปยังไฟล์แทนที่จะพิมพ์ไปที่เทอร์มินัลเราจะใช้เครื่องหมายเปลี่ยนเส้นทางดังนี้:

sed 's/Linux/GnuLinux/g' texto.txt > salida.txt

ผลลัพธ์ของคำสั่งจะถูกบันทึกไว้ในไฟล์ output.txt แทนที่จะพิมพ์บนหน้าจอ

เอาต์พุตคำสั่ง sed

หากต้องการดูตัวเลือกเพิ่มเติมคุณสามารถทำได้ ปรึกษาหน้าคน:

มนุษย์กระหายน้ำ

man sed

อ๊าก

Ack เป็นเครื่องมือบรรทัดคำสั่งที่รวดเร็วที่เขียนด้วย Perl ถือเป็นการทดแทนที่เป็นมิตรสำหรับยูทิลิตี้ grepซึ่งยังสร้างผลลัพธ์ในรูปแบบที่ดึงดูดสายตาอีกด้วย

ไปยัง ติดตั้ง ack ในระบบของเราเราจะต้องดำเนินการในเทอร์มินัล (Ctrl + Alt + T):

ติดตั้ง ack

sudo apt install ack

คำสั่ง Ack จะค้นหาไฟล์หรือไดเร็กทอรีสำหรับบรรทัดที่มีรายการที่ตรงกันสำหรับเกณฑ์การค้นหา. จากนั้นไฮไลต์สตริงที่เกี่ยวข้อง เครื่องมือนี้มีความสามารถในการแยกแยะไฟล์ตามนามสกุล

ไวยากรณ์ของคำสั่ง Ack จะเป็นดังนี้

ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]

ตัวอย่างเช่นในการค้นหาคำ ลินุกซ์ ในไฟล์เราจะต้องดำเนินการ:

คำสั่ง ack search

ack Linux texto.txt

เครื่องมือค้นหาค่อนข้างฉลาดและ หากผู้ใช้ไม่ได้จัดหาไฟล์หรือไดเร็กทอรีใด ๆ ผู้ใช้จะค้นหาไดเร็กทอรีปัจจุบันและไดเร็กทอรีย่อยสำหรับรูปแบบการค้นหา.

ในตัวอย่างต่อไปนี้ไม่มีการจัดเตรียมไฟล์หรือไดเร็กทอรี Ack ตรวจพบไฟล์ที่มีอยู่ในไดเร็กทอรีโดยอัตโนมัติและค้นหารูปแบบที่ตรงกัน:

ค้นหา ack โดยไม่มีไฟล์

ack Linux

Ripgrepgre

Ripgrepgre เป็นยูทิลิตี้ข้ามแพลตฟอร์มเพื่อค้นหารูปแบบการแสดงออกปกติ. เร็วกว่าเครื่องมือค้นหาทั้งหมดที่กล่าวถึงข้างต้นและค้นหาไดเรกทอรีซ้ำ ๆ สำหรับรูปแบบการจับคู่ นอกจากนี้ยังช่วยให้คุณค้นหาประเภทไฟล์ที่ต้องการได้อีกด้วย โดยค่าเริ่มต้น ripgrep จะข้ามไบนารีและไฟล์ / ไดเรกทอรีที่ซ่อนอยู่

ไปยัง ติดตั้ง ripgrep บนระบบสิ่งที่คุณต้องทำคือรันคำสั่งต่อไปนี้ในเทอร์มินัล (Ctrl + Alt + T):

การติดตั้ง ripgrep

sudo apt install ripgrep

ไวยากรณ์สำหรับการใช้ ripgrep ค่อนข้างตรงไปตรงมา:

rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]

หากเราต้องการค้นหาห่วงโซ่ 'ลินุกซ์'ในไฟล์ที่อยู่ภายในไดเร็กทอรีปัจจุบันเราจะต้องดำเนินการคำสั่งเท่านั้น:

คน rg linux

rg Linux

หากต้องการดูตัวเลือกเพิ่มเติมผู้ใช้สามารถใช้ หน้าคน:

คน rg

man rg

ผู้ค้นหาเงิน

ไปยัง ติดตั้งเครื่องมือนี้ใน Ubuntu เราจะต้องเปิดเทอร์มินัลเท่านั้น (Ctrl + Alt + T) และเขียนคำสั่ง:

การติดตั้ง silversearcher-ag

sudo apt install silversearcher-ag

Silver Searcher เป็นเครื่องมือค้นหาแบบข้ามแพลตฟอร์มแบบโอเพ่นซอร์สคล้ายกับ ack แต่เน้นที่ความเร็ว. ทำให้ง่ายต่อการค้นหาสตริงเฉพาะภายในไฟล์ในเวลาที่สั้นที่สุด ไวยากรณ์ที่จะใช้คือ:

ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo

ตัวอย่างเช่นหากต้องการค้นหา "ลินุกซ์'ในไฟล์ text.txtเราจะต้องเขียนในเทอร์มินัล (Ctrl + Alt + T):

ค้นหาด้วย silversearcher

ag Linux texto.txt

หากต้องการดูตัวเลือกเพิ่มเติมเราสามารถปรึกษาได้ที่ไฟล์ หน้าคน:

ชายผู้ค้นหาเงิน

man ag

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


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา