2009-07-28 5 views
6

मेरे पास यूनिकोड टेक्स्ट फ़ाइलों का संग्रह है (regedit से निर्यात किया गया) और मैं उन सभी पंक्तियों को उनके बारे में एक निश्चित पाठ के साथ खींचना चाहता हूं।विंडोज़ में यूनिकोड टेक्स्ट फाइलों को grep करने के लिए नि: शुल्क प्रोग्राम?

मैंने Grep for Windows और findstr की कोशिश की है लेकिन दोनों यूनिकोड एन्कोडिंग को संभालने के लिए प्रतीत नहीं कर सकते हैं। मेरे परिणाम खाली हैं, लेकिन जब मैं -v विकल्प (गैर मिलान वाली रेखाएं दिखाता हूं) का उपयोग करता हूं, तो आउटपुट प्रत्येक वर्ण के बीच एक एनयूएल दिखाता है।

क्या विंडोज़ में यूनिकोड फ़ाइलों पर एक साधारण grep करने के लिए कोई निःशुल्क विकल्प है?

+0

उपयोग मिल जाए, findstr नहीं। – Chalky

उत्तर

8

बस grepWin पर चला गया जो कि मैं यहां जो चाहता हूं उसके लिए पूरी तरह से काम करता है। इच्छा है कि मैं इसे पहले मिल गया होगा!

0

साइगविन आपके लिए एक विकल्प है? शायद ग्रेप कि builtin है एक तुम कोशिश की ...

संबंध

+0

दुर्भाग्यवश, यह मेरा अवलोकन नहीं रहा है। मैं इस मुद्दे से निपट रहा हूं, और सिग्विन जीआरईपी पहली चीज थी जिसकी मैंने कोशिश की थी। यदि मैं फ़ाइलों को एएससीआईआई (या कम से कम यूटीएफ -8) में परिवर्तित करता हूं तो दोनों सिग्विन जीआरईपी और अनक्सयूल्ट्स जीआरईपी केवल परिणाम ढूंढने लगते हैं। – user1172763

0

जांच BareGrep की तुलना में बेहतर व्यवहार करता है। मुझे लगता है कि यह वही करेगा जो आप चाहते हैं।

+0

बहुत अच्छा कार्यक्रम लेकिन यूनिकोड टेक्स्ट के साथ काम नहीं कर रहा है - क्या मुझे कुछ याद आ रही है? – jacobsee

+0

मैं व्यक्तिगत रूप से यूनिकोड के साथ थक गया नहीं है, लेकिन उनकी बिक्री प्रचार कहता है कि यह होगा। वे निश्चित रूप से झूठ बोल सकते हैं (और शायद हैं)। –

+0

यह यूटीएफ 16 फाइलों को संभाल नहीं करता है (मेरे पास समर्थक संस्करण है), और जब मैं इस पृष्ठ को दबाता हूं तो एक प्रतिस्थापन उपकरण की तलाश में था। – scottwed

9

ठीक है, जबकि findstr नहीं संभाल कर सकते हैं यूनिकोड फ़ाइलों को सीधे, type करता है और findstr वास्तव में यूनिकोड इनपुट संभालती समस्याओं के बिना।

तो तुम क्या करने की जरूरत सिर्फ

type myfile.txt | findstr /c:"I'm searching for this" 
 
> type uc-test.txt 
Unicode test. äöüß 
Another line 
Something else 
> findstr "Something" uc-test.txt 

> findstr /v "Something" uc-test.txt 
■U n i c o d e t e s t . õ ÷ ³ ▀ 
A n o t h e r l i n e 
S o m e t h i n g e l s e 
> type uc-test.txt | findstr "Another" 
Another line 
+0

मुझे findstr और यूनिकोड के साथ कोई समस्या नहीं है। ठीक काम करने लगता है। यह भी जोड़ना चाहिए कि आप आर/स्विच में गुजरकर नियमित अभिव्यक्तियों के साथ खोज कर सकते हैं। Grep की तरह यह भी मामले को अनदेखा कर देता है, और केवल फाइलों को सूचीबद्ध करता है आदि –

+1

यह एक फ़ाइल के लिए काम करता है - अभी भी एक grep प्रतिस्थापन की तलाश है ताकि मैं कई फाइलों में से प्रत्येक पंक्ति से एक पंक्ति चुन सकूं, प्रत्येक अपनी उपनिर्देशिका में – jacobsee

+0

आप इसे आसानी से निर्देशिका के पेड़ पर चलने के लिए 'for/r' के साथ संयोजित कर सकते हैं। – Joey

0

पर्ल -CSD -ne 'प्रिंट अगर मीटर {\ Qyour पाठ यहाँ \ ई}' होना

3

file.txt निश्चित रूप से जाना होगा सिगविन के साथ (एक्स सर्वर का उपयोग कर) - नवीनतम यूटीएफ 8 का समर्थन करता है। मेरे आखिरी गग में, मैं सीजेके पात्रों के साथ बहुत काम कर रहा था। साइगविन के एक्स सर्वर का उपयोग करके, आप किसी भी अक्षर पर खोज कर सकते हैं और किसी भी अक्षर को प्रदर्शित कर सकते हैं जिसके लिए आपके पास एक निश्चित चौड़ाई फ़ॉन्ट है। ओडी और एक्सएक्सडी भी देखें जो हेक्स अक्षरों का उपयोग करके अपनी खोजों को दर्ज करना आसान बनाता है उदाहरण: $ echo '?' | ग्रेप $ (गूंज '3F' | XXD -p -r)

+2

मैं सिगविन का एक बड़ा समर्थक हूं, और मुझे लगता है कि इसका जीआरईपी शायद यूटीएफ -8 इनपुट के साथ अच्छा प्रदर्शन करेगा। लेकिन मैं आपको बता सकता हूं कि सिग्विन जीआरईपी के नवीनतम संस्करण भी यूसीएस -16 के साथ प्रभावी ढंग से सौदा नहीं कर सकते हैं। मैं साइगविन को इतना दोष नहीं देता क्योंकि मैं "सभी पात्रों को 16-बिट इकाइयों के रूप में एन्कोड करता हूं" मानसिकता जिसने हमें यूसीएस -16 दिया है। जी, एक नई वास्तुशिल्प झुर्रियां जो न तो पूरा करने की कोशिश कर रही है, न ही * किसी भी मौजूदा कोड के साथ संगत है! धन्यवाद, 1 99 1! – user1172763

1

मैं वर्षों के लिए इस्तेमाल किया खिड़कियां नहीं किया है, लेकिन मैं दो विकल्प पता grep के लिए जो व्याख्या की भाषा में बनाई गई है और इसलिए किसी भी मंच पर चलना चाहिए:

  • ack-grep (पर्ल में)
  • grin (अजगर में)

दोनों कमांड लाइन उपकरण हैं, लेकिन मुझे लगता है कि आप पहले से ही इस के लिए एक समाधान है, अगर आप विंडोज के लिए ग्रेप का इस्तेमाल किया है।

उन पर एक नज़र डालें, मुझे खेद है कि मैं इससे बेहतर साथी की मदद नहीं कर सकता।

3

यदि आपके पास नोटपैड ++ है, तो आप यूनिकोड फ़ाइलों को खोजने के लिए "फ़ाइलें खोजें ..." विकल्प का उपयोग कर सकते हैं।

+0

बहुत उपयोगी - I * हमेशा * नोटपैड ++ है ... –

1

मैं विंडोज कमांड लाइन में "chcp 65001" कमांड संयोजन के साथ http://unxutils.sourceforge.net/ से grep.exe का उपयोग करता हूं।

1

आप dnGREP का उपयोग कर सकते हैं। यह एक और ओपन सोर्स जीईपी उपकरण है जो यूनिकोड फ़ाइल प्रकार का समर्थन करता है।

+0

fyi, .NET 4.0 की आवश्यकता है – jacobsee

0

मेरा मानना ​​है कि आपको विंडोज़ में सबसे अधिक विश्वसनीय मुफ्त प्रोग्राम पावरहेल है। उदाहरण के लिए:

Get-ChildItem -Recurse -path c: \ अस्थायी \ * ग | का चयन करें-स्ट्रिंग -pattern उपनिर्देशिका में

"myunicodestring" या फिर आप केवल एक निर्देशिका में खोज करने के लिए चाहते हैं, तो (नहीं।):

करें-स्ट्रिंग -path "c:। \ mydir \ * लॉग ऑन" -pattern "त्रुटि"

संबंधित मुद्दे