Jawaban:
Anda dapat menggunakan grep
perintah dari terminal:
grep -r word *
Perintah ini akan menemukan semua kemunculan "kata" di semua file di bawah direktori saat ini (atau subdirektori).
--color=auto
flag dapat menyelesaikannya.
Instal gnome-search-tool.
sudo apt-get install gnome-search-tool
Buka Search for files
pilih Select More Options
dan
which gnome-search-tool
= /usr/bin/gnome-search-tool
... tetapi ketika saya membuka opsi pencarian di gnome (Pergi, Cari file ...) tidak ada pilihan untuk "Pilih Opsi Lainnya"
gnome-search-tool
dan saya yakin Anda akan melihatnya.
Berikut ini adalah ikhtisar dari berbagai metode yang dapat digunakan seseorang untuk mencari file untuk string teks tertentu, dengan beberapa opsi yang ditambahkan secara khusus untuk bekerja hanya dengan file teks, dan mengabaikan file biner / aplikasi.
Orang harus mencatat, bagaimanapun, bahwa pencarian kata bisa menjadi sedikit rumit, karena sebagian besar alat pencocokan garis akan mencoba untuk menemukan kata di mana saja di telepon. Jika kita berbicara tentang kata sebagai string yang dapat muncul di awal atau akhir baris, atau sendirian di telepon, atau dikelilingi oleh spasi dan / atau tanda baca - saat itulah kita akan memerlukan ekspresi reguler, dan terutama yang datang dari Perl. Di sini, misalnya, kita dapat menggunakan -P
di grep
memanfaatkan Perl ekspresi reguler untuk mengelilingi itu.
$ 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
untuk pencarian rekursif turun dari direktori saat ini-I
untuk mengabaikan file biner-H
untuk menampilkan nama file tempat ditemukan kecocokanCocok untuk pencarian saja.
$ find -type f -exec grep -IH 'word' {} \;
find
melakukan bagian pencarian rekursif-I
opsinya adalah mengabaikan file biner-H
untuk menampilkan nama file tempat baris ditemukanpendekatan yang baik untuk digabungkan dengan perintah lain dalam subkulit, seperti:
$ 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 },".")
Ini adalah "cara bash". Tidak ideal, mungkin tidak ada alasan yang baik untuk menggunakan ini ketika Anda menginstal grep
atau perl
menginstal.
#!/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 "$@"
Pertanyaannya cukup lama ... lagi pula ... saat ini (2016) ada aplikasi gnome bernama tracker
(Anda dapat menemukannya di repositori ubuntu) yang dapat diinstal untuk mencari teks di dalam file (mencoba odt-ods-odp-pdf) . Paket ini dilengkapi dengan 4 paket lain untuk diinstal (pelacak-ekstrak, pelacak-gui, pelacak-penambang-fs, pelacak-utils) Namastè :)
Ya, saya tahu Anda mencari aplikasi gui dan ini adalah posting lama, tapi mungkin ini bisa membantu seseorang. Saya menemukan util ack-grep. Pertama instal via sudo apt-get install ack-grep
lalu jalankan perintah ack-grep what_you_looking_for
di direktori tempat Anda ingin mencari. Ini menunjukkan kepada Anda semua file yang merupakan teks Anda dan juga menampilkan pratinjau dari file ini. Dan ini sangat penting bagi saya.
Lebih sederhana dan lebih cepat adalah "pencari perak" sudo apt-get install silversearcher-ag
. Lihatlah https://github.com/ggreer/the_silver_searcher untuk reassons mengapa lebih baik daripada ack * di antara yang lain.
grep -r word .
.