Grep ใน Microsoft Word หรือไม่
ฉันต้องการดึงทุกบรรทัดด้วยสตริงที่กำหนดจากเอกสารคำ ในโลกยูนิกซ์ ... grep ทำสิ่งนี้โดยไม่ผิดพลาด Windows มีความชัดเจนน้อยกว่าฉัน
Grep ใน Microsoft Word หรือไม่
ฉันต้องการดึงทุกบรรทัดด้วยสตริงที่กำหนดจากเอกสารคำ ในโลกยูนิกซ์ ... grep ทำสิ่งนี้โดยไม่ผิดพลาด Windows มีความชัดเจนน้อยกว่าฉัน
คำตอบ:
ด้วย Cygwin (หรือการเข้าถึงเครื่อง Linux) คุณทำได้
antiword file.doc | grep "my phrase"
หรือ
catdoc file.doc | grep "my phrase"
มีรูปแบบไฟล์บรรทัดคำสั่งมากมายที่แปลงเป็นgrepในลักษณะเดียวกัน
วิธีการแก้ปัญหาแบบ in-Word อย่างแท้จริงอาจเป็นCtrl + F (ค้นหา) แล้วค้นหาทั้งหมด - อย่างไรก็ตามฉันไม่แน่ใจว่า MS Word ทุกเวอร์ชันมีปุ่มค้นหาทั้งหมดหรือไม่
catdoc
segfaults ในทุก.doc
/ .docx
ไฟล์ฉันให้มันและantiword
เพียงแค่บอกฉันเอกสารของฉัน "ไม่ได้เป็นเอกสาร Word" คุณรู้จักตัวเลือกอื่น ๆ บ้างไหม?
docx2txt
มีอยู่ในที่เก็บ Debian - อาจใช้งานได้ ฉันยังดูที่เครื่องมือการแปลงรูปแบบบรรทัดคำสั่ง OpenOffice / LibreOffice (unoconv) ซึ่งสามารถใช้เพื่อจุดประสงค์เดียวกันได้
ฉันรู้ว่ามันฟังดูดั้งเดิม แต่สิ่งที่ทำให้คุณไม่สามารถบันทึกไฟล์เป็น. txt แล้วแยกมันออกจากความชอบของคุณ
"เส้น" หมายถึงอะไรในบริบทของ Word? บรรทัดที่แสดงซึ่งจะเปลี่ยนแปลงหากคุณทำอะไรกับการจัดรูปแบบหน้า? ย่อหน้าหรือไม่ อื่น ๆ อีก?
คุณสามารถทำสิ่งต่าง ๆ ได้ด้วยฟังก์ชั่นค้นหาและแทนที่ของ Word รวมถึงการเปลี่ยนการจัดรูปแบบและสิ่งที่ไม่ชัดเจนอื่น ๆ แต่สิ่งเหล่านี้ทั้งหมดจะกระทำเฉพาะกับข้อความค้นหาที่ตัวเองไม่ใช่ข้อความที่อยู่รอบ ๆ
มีการรองรับเอกสาร MS - Word, PowerPoint, Excel - ในCRGREPซึ่งฉันได้พัฒนาเป็นเครื่องมือโอเพ่นซอร์สฟรี นอกจากนี้ยังนำเสนอสิ่งที่ยากอื่น ๆ ในการค้นหาเช่นตารางฐานข้อมูลรูปภาพเสียงคลังข้อมูล PDF และชุดค่าผสมเหล่านี้ มีความสุข.
มีตัวแทนไม่มากพอที่จะแสดงความคิดเห็น แต่ฉันสามารถดูปัญหา doc vs docx นี้ที่กล่าวถึงเพื่อให้ทุกคนไล่ตามเธรด (เหมือนฉัน) อาจพบว่ามีประโยชน์
คุณไม่ต้องการเครื่องมือพิเศษสำหรับไฟล์ docx docx เป็นไฟล์ XML ที่บีบอัด
ในการแยกและดึง XML ลองทำตาม
unzip -p "*.docx" word/document.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'
รวดเร็วฟรีโอเพ่นซอร์สและโซลูชั่นข้ามแพลตฟอร์ม: https://github.com/phiresky/ripgrep-all