rgpipe เป็นสคริปต์ Bash/SH เดียวและนามแฝงที่ใช้กับ Ripgrep เพื่อค้นหาผ่านประเภทไฟล์มากมายที่ไม่เป็นมิตรกับ grep ใช้กับคำสั่ง -pre ของ Ripgrep ซึ่งอนุญาตให้ Ripgrep สามารถประมวลผลไฟล์ได้ก่อนที่จะค้นหา
การใช้งานขั้นพื้นฐานที่สุดคือการชี้ rgpipe ในบางไฟล์และจะพยายามพิมพ์เนื้อหาของไฟล์ดังกล่าวไปยัง stdout
rgpipe MyFancyExcelFile.xlsx
การใช้งานที่เกี่ยวข้องมากขึ้นนั้นเป็นตัวกรองที่อยู่ด้านหน้าของ ripgrep เพื่อพยายามอย่างเป็นระบบที่จะพยายามอย่างเป็นระบบผ่านเนื้อหาของไฟล์ที่ไม่ใช่ข้อความสารพันมากเท่าที่คุณต้องการ คาถาพื้นฐานดูเหมือนว่า:
rg --pre-glob '*.{xlsx,pptx,docx,pdf}' --pre rgpipe "$YourSearchTermHere"
ฉันเขียนส่วนสำคัญเกี่ยวกับวิธีการใช้ที่นี่
GIST นั้นมีประโยชน์เพียงเพราะโน้ตชนิดโดย Burntsushi ในความคิดเห็นข่าวแฮ็กเกอร์นี้อธิบายว่า rg --pre-glob ทำงานอย่างไร
สิ่งนี้จะช่วยให้ GREP ผ่าน:
unzip และ sedstringsunzip และ sedpdftottext จาก Popplerw3m Lynx และเพื่อนก็ใช้งานได้เช่นกัน ไม่จำเป็น 100%unzip และ w3m สำหรับ EPUB7zip และ w3m สำหรับ CHM Ubuntu ต้องการ: sudo apt install poppler-utils p7zip w3m unzip
TERMUX ต้องการ: pkg install poppler p7zip w3m
สมมติว่า rgpipe อยู่ในเส้นทางใช้/เส้นทาง/to/rgpipe หากไม่ใช่
rg --pre rgpipe YourSearchTermHereด้านบนใช้ RGPIPE แม้ว่าจะไม่จำเป็น แต่ก็ช้า แต่ RIPGREP สามารถเลือกใช้กับ-Pre-Glob ได้
rg --pre-glob ' *.{xlsx,pptx,docx,pdf} ' --pre rgpipe YourSearchTermHerePre Glob ที่ละเอียดยิ่งขึ้น:
rg --pre-glob ' *.{pdf,xl[tas][bxm],xl[wsrta],do[ct],do[ct][xm],p[po]t[xm],p[op]t,html,htm,xhtm,xhtml,epub,chm,od[stp]} ' --pre rgpipe YourSearchTermHereนามแฝงเพราะนั่นคือการพิมพ์จำนวนมาก
alias rgg= " rg -i -z --max-columns-preview --max-columns 500 --hidden --no-ignore --pre-glob
'*.{pdf,xl[tas][bxm],xl[wsrta],do[ct],do[ct][xm],p[po]t[xm],p[op]t,html,htm,xhtm,xhtml,epub,chm,od[stp]}' --pre rgpipe "ขั้นตอนที่ 1: ใช้ rgpipe เพื่อสร้างไฟล์ sidecar ข้อความ
find-rgpipe-type () {
find ` pwd ` -type f -iname " *. $1 " -exec sh -c ' for f; do rgpipe "$f" > "${f%.*}.txt"; done ' _ {} +
}
# or get fancy with xargs for multithreaded goodness
find-rgpipe-type-xargs () {
find " $( pwd ) " -type f -iname " *. $1 " -print0 | xargs -0 -P0 -n 1 -I {} sh -c ' rgpipe "{}" > "{}.txt" '
}
สร้างข้อความ sidecars สำหรับไฟล์ทั้งหมดที่มีส่วนขยาย PDF ภายใต้ไดเรกทอรีปัจจุบันโดยใช้ฟังก์ชั่นที่กำหนดไว้ข้างต้น
find-rgpipe-type pdfขั้นตอนที่ 2: ใช้ ripgrep เพื่อค้นหาไฟล์เหล่านั้น
rg YourSearchTermHere1 - ความคิดเห็นข่าวแฮ็กเกอร์นี้
2 - สคริปต์การประมวลผลล่วงหน้าที่เป็นเทมเพลตที่ฉันเพิ่มประเภทไฟล์เพิ่มเติม
3 - Midnight Commander มีสคริปต์ที่ยอดเยี่ยมในเรื่องนี้
4 - น้อยลงแน่นอน
5 - RGA เป็นเครื่องมือที่ทำจากสนิมทำสิ่งที่คล้ายกัน
rgpipe เพราะความคิดนั้นคล้ายกับน้อยลง