回答:
gnome-search-toolをインストールします。
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
そして、あなたはそれを見ると確信しています。
特定のテキスト文字列のファイルを検索するために使用できるさまざまな方法の概要を次に示します。テキストファイルのみで動作し、バイナリ/アプリケーションファイルを無視するための特別なオプションがいくつか追加されています。
ただし、ほとんどの行照合ツールは行のどこからでも単語を見つけようとするため、単語の検索は少し複雑になる可能性があることに注意してください。行頭または行末、または単独で、またはスペースや句読点で囲まれた文字列としての単語について話している場合-正規表現、特に来るものが必要な場合Perlから。ここでは、たとえば、-P
in grep
を使用して、Perlの正規表現を使用してそれを囲むことができます。
$ 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 },".")
これが「bash way」です。理想的ではない、おそらくあなたが持っている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リポジトリで見つけることができる)と呼ばれるgnomeアプリがあります(試されたodt-ods-odp-pdf) 。パッケージには、インストールする他の4つのパッケージ(tracker-extract、tracker-gui、tracker-miner-fs、tracker-utils)Namastèが付属しています。
grep -r word .
ます。