एक फ़ोल्डर में फ़ाइलों के अंदर तारों की खोज कैसे करें?


98

क्या कमांड लाइन खोजों से बचने के लिए ASCII फ़ाइलों के अंदर एक स्ट्रिंग की खोज करने के लिए कोई उपयोगिता है?

एक कमांड लाइन खोज कैसे करें, उदाहरण के लिए स्ट्रिंग "परीक्षण" के लिए निर्देशिका में सभी फाइलों के अंदर /var/x/?


15
आप वास्तव में कमांड लाइन का उपयोग किए बिना मतलब है ? क्योंकि उस के लिए सबसे अच्छा उपकरण grep बना हुआ है ...
alci

CLI पर सिल्वर सर्चर बेहतर कार्य करता है।
पाब्लो ए

जवाबों:


78

आप Searchmonkey का उपयोग कर सकते हैं। उपकरण रिपॉजिटरी में उपलब्ध है, इसलिए आप बस कर सकते हैं

sudo apt-get install searchmonkey

दूसरी ओर, grep के साथ कमांड लाइन खोज वास्तव में उस के लिए है ...

यहाँ searchmonkey से एक स्क्रीनशॉट है

यहाँ छवि विवरण दर्ज करें


बहुत अधिक भार के कारण दुर्घटनाग्रस्त :(
वायर्डइन

1
मैं searchmonkey के साथ मुद्दों था। यह इस मायने में भरोसेमंद नहीं है कि यह बहुत सारी घटनाओं को
tony gil

मैं GUI से "searchmonkey" कैसे चलाऊं? कमांड लाइन का उपयोग करके स्थापित करने के बाद, मैं
एचेबन

153

मैं मानता हूं कि आपका पहला सवाल grepकमांड के GUI विकल्प के बारे में है । मैं आपकी मदद नहीं कर सकता, मुझे हमेशा कमांड लाइन बहुत प्रभावी लगती है।

कमांड लाइन के लिए प्रयास करें

grep "test" /var/x/*

यदि आप पुनरावर्ती खोज करना चाहते हैं (अर्थात न केवल अंदर /var/x/, बल्कि उपनिर्देशिका में भी), करें

grep -R "test" /var/x/

फ़ाइलों को टटोलने से बचने के लिए जो grep को द्विआधारी होने का विचार करता है, -Iविकल्प का उपयोग करें :

grep -I "test" /var/x/

अगर grep को लगता है कि कोई फ़ाइल बाइनरी है (फ़ाइल के पहले कुछ बाइट्स के आधार पर), तो यह मान लेगा कि यह पूरी फ़ाइल के माध्यम से जाने के बजाय मेल नहीं खाता है।


1
यह काम करेगा अगर फ़ोल्डर में कुछ गैर-एससीआई फाइलें हैं?
अनवर

1
खैर, grep भी एक बाइनरी फ़ाइल में स्ट्रिंग की खोज करने की कोशिश करेगा, और रिपोर्ट करेगा कि क्या यह मेल खाता है:Binary file file.jpg matches
जनवरी

1
@January जब एक द्विआधारी फ़ाइल को पाठ के रूप में पढ़ा जाता है, तो इसमें अक्सर बहुत लंबी "रेखाएं" होती हैं (क्योंकि एक वर्ण या वर्ण अनुक्रम जिसे एक पंक्ति के अंत को नामित करने के लिए व्याख्या किया जाएगा, वह लंबे समय तक, या कभी भी प्रकट नहीं हो सकता है)। पाठ खोज उपयोगिता को लागू करने के तरीके के आधार पर, यह प्रदर्शन समस्याओं का कारण बन सकता है यदि प्रत्येक "लाइन" को पूरी तरह से मेमोरी में पढ़ा जाता है और फिर यह देखने के लिए चेक किया जाता है कि यह खोज स्ट्रिंग से मेल खाता है (जो grepकोडित होने के लिए एक उचित तरीका है , हालांकि मैं पता नहीं कि उबंटू grepइस तरह लिखा गया है)।
एलिया कागन

1
केस असंवेदनशील खोज के लिए "grep -i"
Czarek Tomczak

3
*रास्ते में अंतिम स्लैश के बाद होना चाहिए या जीआरपी 14.04 में कोई काम करने के लिए प्रकट नहीं होता है
डेविडशेकर

20

आप regexxer का उपयोग कर सकते हैं यह एक शानदार GUI खोज है / नियमित अभिव्यक्ति के लिए उपकरण बदलें।

आप इसके द्वारा डाउनलोड कर सकते हैं:

sudo apt-get install regexxer

यहाँ छवि विवरण दर्ज करें


यह सुपर फास्ट है, लेकिन मेरे पास इस एप्लिकेशन के साथ जो समस्याएँ हैं, वे हैं: 1. इसमें एक रीडायनली मोड नहीं है, इसलिए मैं गलती से किसी चीज़ को प्रतिस्थापित या डिलीट नहीं करता। यह टेक्स्ट को दिखाता है, लेकिन यह विशिष्ट पर नहीं जाएगा रेखा जो पैटर्न से मेल खाती है। (मैंने चमकदार लाल रंग बदलने के बाद जो कुछ पाया, उसे जानने के लिए मैंने कोड की लगभग 2000 पंक्तियों को स्क्रॉल किया!)
मेहद महमूदियन

6

Recoll की कोशिश करो, सबसे अच्छा जीयूआई मैं कभी भी इस्तेमाल किया। उबंटू के सभी वर्तमान में समर्थित संस्करणों में रिकॉल स्थापित करने के लिए टर्मिनल खोलें और टाइप करें:

sudo apt install recoll

पहले फाइलों को अनुक्रमित करने के लिए कुछ समय चाहिए (आप ब्लैकलिस्ट पथ या एक्सटेंशन या माइम को परिभाषित कर सकते हैं)।


मैं इस बात की पुष्टि कर सकता हूं कि Recoll सम्मान के साथ gnome-search-toolया उसके साथ पूरी तरह से एक और दुनिया है search-monkey। यह Xapian का उपयोग करता है, इसलिए यह वर्ड डॉक्यूमेंट (दोनों .doc और .docx), pdf फाइल्स, मेल फोल्डर, आदि का निरीक्षण करने में सक्षम है
Avio

उह, यह डिबेट पैकेजिंग ( sudo apt install recoll) के माध्यम से उपलब्ध है और यह अपना काम करता है जहां grep विफल रहता है, जैसे .docx दस्तावेज़ जो pkzip संपीड़न के साथ संपीड़ित होते हैं।
अवियो

ध्यान दें कि recollपहले बिल्डिंग इंडेक्स की आवश्यकता है।
यरगिरग

5

आप grepटर्मिनल से कमांड का उपयोग कर सकते हैं :

grep -r string *

यह कमांड मौजूदा डायरेक्टरी (या सबड्रेक्ट्रीज़) के तहत सभी फाइलों में "स्ट्रिंग" की सभी घटनाएँ पाएगी।

छिपी हुई फ़ाइलों के लिए, आप उपयोग कर सकते हैं:

grep -r string ..


2

दुर्भाग्य से grep Word (.doc) फ़ाइलों के अंदर खोज करने का बहुत खराब काम करता है, लेकिन आप catdoc आउटपुट को grep में पाइप कर सकते हैं। मैं कोई प्रोग्रामर नहीं हूँ, लेकिन यह छोटी स्क्रिप्ट मेरे लिए अच्छा काम करती है:

#!/bin/bash
export GREP_OPTIONS='--color=auto'
echo -e "\n
Welcome to scandocs. This will search .doc (NOT .docx) files in this directory for a given string. \n
Type in the text string you want to find... \n"
read response
find . -name "*.doc" | 
while read i; do catdoc "$i" | 
grep -iH --label="$i" "$response"; done

सभी सुधार और सुझावों का स्वागत है!


1
यह प्रश्न चित्रमय अनुप्रयोगों और सादे पाठ फ़ाइलों के बारे में था। मुझे यकीन नहीं है कि प्रश्न के साथ क्या करना है grepऔर क्या .docकरना है।
एंड्रिया कोरबेलिनी

ठीक लगता है, जनवरी के बारे में विस्तृत जवाब देखें grep
एक्वेरड

2

मैंने काम करने के लिए एक सरल उपकरण जारी किया है। मुख्य रूप से सॉफ़्टवेयर डेवलपर के लिए सोचा गया, इसमें एक ही विंडो में कई फ़ाइलों को खोलने की विशिष्ट (अद्वितीय?) विशेषता है। यह ऐस संपादक (पुनः शामिल!) या html textarea का उपयोग करके ब्राउज़र में परिणाम प्रस्तुत करता है। यह एक जावा आधारित उपकरण है, इसलिए यह खिड़कियों के साथ-साथ लिनक्स में भी चलता है।

इसकी जांच - पड़ताल करें!

https://sourceforge.net/projects/queacetu.gastona.p/


1

प्रति https://askubuntu.com/a/1141367/47073

आप उपयोग कर सकते हैं mate-search-tool, जो कि वही चीज gnome-search-toolहै जिसे हटा दिया गया था। मुझे सर्चमॉन्की के साथ समस्या थी, यह कुछ परिणाम याद कर रहा था और धीमा था, अनुशंसा नहीं करता।

स्थापित करने के लिए mate-search-tool:

sudo apt install mate-utils
mate-search-tool

0

आप फ़ोल्डर से फ़ाइलों के अंदर स्ट्रिंग की खोज करने के लिए मेनू से Sublime पाठ Find in Files विकल्प का उपयोग कर सकते हैं Find

उदात्त पाठ 3 स्थापित करने के लिए

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

आप इस प्रश्न को उबंटू पर सबलाइम स्थापित करने के अन्य संभावित तरीकों के लिए भी अनुसरण कर सकते हैं ।

उदात्त पाठ में एक फ़ोल्डर से स्ट्रिंग के लिए सभी फ़ाइलों को खोजने के लिए आप इस प्रश्न का अधिक स्पष्ट उत्तर के लिए अनुसरण कर सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.