जवाबों:
आप grep
टर्मिनल से कमांड का उपयोग कर सकते हैं :
grep -r word *
यह कमांड मौजूदा डायरेक्टरी (या सबड्रेक्ट्रीज़) के तहत सभी फाइलों में "शब्द" की सभी घटनाओं को खोज लेगा।
--color=auto
ध्वज उसे हल कर सकता है।
सूक्ति-खोज-उपकरण स्थापित करें।
sudo apt-get install gnome-search-tool
खुला और Search for files
चुनेंSelect More Options
which gnome-search-tool
= /usr/bin/gnome-search-tool
... लेकिन जब मैं gnome में खोज विकल्प खोलता हूं (जाओ, फ़ाइलों की खोज करें ...) "अधिक विकल्प चुनें" के लिए कोई विकल्प नहीं है
gnome-search-tool
और मुझे यकीन है कि आप इसे देखेंगे।
यहां विभिन्न तरीकों का अवलोकन किया गया है, जिसका उपयोग पाठ के विशिष्ट तारों के लिए फ़ाइलों को खोजने के लिए कर सकते हैं, विशेष रूप से केवल पाठ फ़ाइलों के साथ काम करने के लिए कुछ विकल्पों को जोड़ा गया है, और बाइनरी / एप्लिकेशन फ़ाइलों की उपेक्षा करें।
हालाँकि, ध्यान देना चाहिए कि शब्द की खोज करने से थोड़ा जटिल हो सकता है, क्योंकि अधिकांश लाइन-मिलान उपकरण लाइन पर कहीं भी एक शब्द खोजने की कोशिश करेंगे। यदि हम एक ऐसे शब्द के बारे में बात कर रहे हैं जो स्ट्रिंग की शुरुआत या अंत में दिखाई दे सकता है, या लाइन पर अकेला, या रिक्त स्थान और / या विराम चिह्न से घिरा हो सकता है - तब जब हमें नियमित अभिव्यक्ति की आवश्यकता होगी, और विशेष रूप से वे जो आते हैं पर्ल से। यहाँ, उदाहरण के लिए, हम उपयोग कर सकते हैं -P
में grep
पर्ल नियमित अभिव्यक्तियों का उपयोग करने के लिए यह चारों ओर।
$ printf "A-well-a don't you know about the bird?\nWell, everybody knows that the bird is a word" | grep -noP '\bbird\b'
1:bird
2:bird
$ grep -rIH 'word'
-r
वर्तमान निर्देशिका से पुनरावर्ती खोज के लिए-I
बाइनरी फ़ाइलों को अनदेखा करने के लिए-H
आउटपुट फ़ाइल नाम के लिए जहां मैच पाया जाता हैकेवल खोज के लिए उपयुक्त है।
$ find -type f -exec grep -IH 'word' {} \;
find
पुनरावर्ती खोज भाग करता है-I
विकल्प बाइनरी फ़ाइलों को अनदेखा करना है-H
आउटपुट नाम के लिए, जहां लाइन पाई जाती हैउपधारा के भीतर अन्य कमांड के साथ संयोजन के लिए अच्छा तरीका, जैसे:
$ find -type f -exec sh -c 'grep -IHq "word" "$1" && echo "Found in $1"' sh {} \;
#!/usr/bin/env perl
use File::Find;
use strict;
use warnings;
sub find_word{
return unless -f;
if (open(my $fh, $File::Find::name)){
while(my $line = <$fh>){
if ($line =~ /\bword\b/){
printf "%s\n", $File::Find::name;
close($fh);
return;
}
}
}
}
# this assumes we're going down from current working directory
find({ wanted => \&find_word, no_chdir => 1 },".")
यह "बैश रास्ता" है। आदर्श नहीं, संभवतः इसका उपयोग करने का कोई अच्छा कारण नहीं है जब आपने इसे स्थापित grep
या perl
स्थापित किया हो।
#!/usr/bin/env bash
shopt -s globstar
#set -x
grep_line(){
# note that this is simple pattern matching
# If we wanted to search for whole words, we could use
# word|word\ |\ word|\ word\ )
# although when we consider punctuation characters as well - it gets more
# complex
case "$1" in
*word*) printf "%s\n" "$2";;
esac
}
readlines(){
# line count variable can be used to output on which line match occured
#line_count=1
while IFS= read -r line;
do
grep_line "$line" "$filename"
#line_count=$(($line_count+1))
done < "$1"
}
is_text_file(){
# alternatively, mimetype command could be used
# with *\ text\/* as pattern in case statement
case "$(file -b --mime-type "$1")" in
text\/*) return 0;;
*) return 1;;
esac
}
main(){
for filename in ./**/*
do
if [ -f "$filename" ] && is_text_file "$filename"
then
readlines "$filename"
fi
done
}
main "$@"
प्रश्न काफी पुराना है ... वैसे भी ... वर्तमान में (2016) एक गनोम ऐप है tracker
( जिसे आप इसे ubuntu रिपॉजिटरी में पा सकते हैं) जिसे फ़ाइलों के अंदर पाठ की खोज के लिए इंस्टॉल किया जा सकता है (कोशिश की गई ऑड-ओड-ओड-पीडीएफ) । पैकेज 4 अन्य पैकेजों के साथ आता है (ट्रैकर-एक्सट्रैक्ट, ट्रैकर-गुई, ट्रैकर-माइनर-एफएस, ट्रैकर-बर्तन) नमस्तः :)
हां, मुझे पता है कि आप गुई आवेदन की तलाश कर रहे थे और यह पुरानी पोस्ट है, लेकिन शायद यह किसी की मदद करे। मैंने ack-grep उपयोग पाया। पहले इसे इंस्टॉल करें sudo apt-get install ack-grep
और फिर ack-grep what_you_looking_for
उस डायरेक्टरी में कमांड चलाएं जहां आप सर्च करना चाहते हैं। यह आपको उन सभी फाइलों को दिखाता है जिनमें आपका पाठ है और इस फाइलों से पूर्वावलोकन भी दिखाते हैं। और यह मेरे लिए बहुत महत्वपूर्ण है।
यहां तक कि सरल और तेज "रजत खोजक" है sudo apt-get install silversearcher-ag
। अन्य लोगों के बीच ack * से बेहतर क्यों है, इस पर पुनः विचार के लिए https://github.com/ggreer/the_silver_searcher पर एक नज़र डालें ।
grep -r word .
।