Antworten:
Sie können den grep
Befehl vom Terminal aus verwenden:
grep -r word *
Dieser Befehl findet alle Vorkommen von "word" in allen Dateien im aktuellen Verzeichnis (oder in den Unterverzeichnissen).
--color=auto
Flag kann das beheben.
Installieren Sie das Gnome-Search-Tool.
sudo apt-get install gnome-search-tool
Öffnen Sie Search for files
select Select More Options
und
which gnome-search-tool
= /usr/bin/gnome-search-tool
... aber wenn ich die Suchoption in gnome öffne (Gehe zu,
gnome-search-tool
und ich bin sicher, Sie werden es sehen.
Im Folgenden finden Sie eine Übersicht über verschiedene Methoden, mit denen Sie Dateien nach bestimmten Textzeichenfolgen durchsuchen können. Einige Optionen wurden hinzugefügt, um nur mit Textdateien zu arbeiten und Binär- / Anwendungsdateien zu ignorieren.
Man sollte jedoch beachten, dass das Suchen nach Wörtern etwas komplex werden kann, da die meisten Tools zur Zeilenanpassung versuchen, ein Wort an einer beliebigen Stelle in der Zeile zu finden. Wenn es sich um ein Wort als Zeichenfolge handelt, das am Anfang oder Ende einer Zeile oder allein in der Zeile oder umgeben von Leerzeichen und / oder Interpunktionszeichen vorkommen kann, benötigen wir reguläre Ausdrücke, insbesondere solche, die kommen von Perl. Hier können zum Beispiel verwenden wir -P
in grep
zur Verwendung von Perl reguläre Ausdrücke zu machen , um sie zu umgeben.
$ 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
für die rekursive Suche aus dem aktuellen Verzeichnis-I
Binärdateien zu ignorieren-H
um den Dateinamen auszugeben, in dem die Übereinstimmung gefunden wurdeNur zum Suchen geeignet.
$ find -type f -exec grep -IH 'word' {} \;
find
erledigt die rekursive Suche-I
Option ist, Binärdateien zu ignorieren-H
um den Dateinamen auszugeben, in dem die Zeile gefunden wurdeguter Ansatz zum Kombinieren mit anderen Befehlen in der Subshell, wie:
$ 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 },".")
Dies ist der "Bash-Weg". Nicht ideal, wahrscheinlich kein guter Grund , dies zu verwenden , wenn Sie haben grep
oder perl
installiert.
#!/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 "$@"
Die Frage ist ziemlich alt ... jedenfalls ... derzeit (2016) gibt es eine Gnome-App mit dem Namen tracker
(Sie finden sie in Ubuntu-Repositories), die installiert werden kann, um nach Text in Dateien zu suchen (versucht, odt-ods-odp-pdf). . Das Paket enthält 4 weitere zu installierende Pakete (tracker-extract, tracker-gui, tracker-miner-fs, tracker-utils) Namastè :)
Ja, ich weiß, dass Sie nach einer GUI-Anwendung gesucht haben und dies ist ein alter Beitrag, aber vielleicht hilft dies jemandem. Ich habe ack-grep util gefunden. Zuerst installieren Sie es über sudo apt-get install ack-grep
und führen dann den Befehl ack-grep what_you_looking_for
in dem Verzeichnis aus, in dem Sie suchen möchten. Hier sehen Sie alle Dateien, in denen sich Ihr Text befindet, und eine Vorschau dieser Dateien. Und das ist so wichtig für mich.
Noch einfacher und schneller ist "Silver Searcher" sudo apt-get install silversearcher-ag
. Schauen Sie unter https://github.com/ggreer/the_silver_searcher nach, um zu erfahren, warum dies unter anderem besser ist als ack *.
grep -r word .
.