มีgrep ที่รับรู้ Unicode สำหรับ Windows 32 บิตหรือไม่
มีgrep ที่รับรู้ Unicode สำหรับ Windows 32 บิตหรือไม่
คำตอบ:
สำหรับเครื่องมือบรรทัดคำสั่งให้ดูที่คำตอบ KeyboardMonkey (แต่ฉันไม่แน่ใจเกี่ยวกับการสนับสนุน Unicode)
สำหรับเครื่องมือ GUI (โอเพ่นซอร์ส): dnGREP
สำหรับเครื่องมือ GUI ที่ง่ายกว่า (ค้นหาอย่างเดียว): AstroGrepและอีกอันหนึ่งที่โดดเด่น (และแพงกว่า): PowerGREP
Windows ส่วนใหญ่มีคำสั่ง "findstr" ซึ่งทำงานเหมือนกับ grep ฉันไม่รู้เกี่ยวกับความสามารถของ Unicode แต่สำหรับความรู้ของฉันไม่ควรมีปัญหาใด ๆ
อัปเดต: GnuWin32เป็นพอร์ตที่รักษาไว้ล่าสุดของเครื่องมือเหล่านี้ (ขอบคุณนักต้มตุ๋น)
นี่คือรายการของแพ็คเกจและดาวน์โหลด grep ทีละรายการ
ลองดูUnxUtilsซึ่งรวมถึง grep เช่นกัน ฉันใช้สิ่งเหล่านี้บนพีซีที่ทำงานของฉันด้วย
ใช่ตามที่กล่าวไว้ในฟลักซ์เทนทู
อย่างไรก็ตาม
-U
สวิตช์ ฉันอยากจะแนะนำ Cygwin เป็นวิธีแก้ปัญหาที่ง่ายที่สุดถ้าคุณคุ้นเคยกับ grep ของ Unix เพียงตรวจสอบให้แน่ใจว่าได้ผนวก PATH ของคุณและคุณสามารถใช้มันในเชลล์ Windows ได้เช่นกันวิธีที่ง่ายที่สุดในการทำเช่นนี้คือยูทิลิตี Windows ที่เรียกว่า "สตริง" ซึ่งทำสิ่งที่คุณต้องการอย่างแน่นอน:
สตริง (Sysinternals)
โดยพื้นฐานแล้วมันจะดึงอักขระ Unicode ทั้งหมดออกจากไฟล์ดังนั้นคุณจึงสามารถไพพ์ไปยังสิ่งที่ Windows ที่คุณใช้ไม่ว่าจะเป็น findstr
(เนทีฟ) หรืออย่างฉัน gnuwin32 grep สำหรับ Windows (ทำตามที่บอก)
ดังนั้นคุณจะได้รับสิ่งที่ชอบ:
strings *.odf | grep -i "texttosearch"
findstr
ใช้งานได้กับหลายสิ่งหลายอย่าง แต่ grep ก็ดีกว่า
strings
โปรแกรมที่ใช้สำหรับการหาสตริงข้อความที่มีการผสมกับไม่ใช่ข้อความ (“ฐาน”) ข้อมูล เช่นไฟล์ปฏิบัติการ คำถามไม่ได้พูดอะไรเกี่ยวกับการมีสตริงข้อความฝังอยู่ในข้อมูลไบนารี ... ... ... ... ... ... ... ... ถ้าฉันต้องการค้นหาแฟ้มข้อความ Unicode สำหรับตัวอักษรเช่นπ
และ≤
? ฉันจะพิมพ์strings dissertation | findstr "π"
หรือไม่ ไม่findstr
จัดการกับ Unicode? ถ้าเป็นเช่นนั้นทำไมไม่เพียงแค่พูดfindstr "π" dissertation
ซึ่งแนะนำเมื่อห้าปีที่แล้ว? หากไม่เป็นเช่นนั้นคุณมีอะไรบ้าง