답변:
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
있는 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 },".")
이것이 "bash 길"입니다. 이상적이지 않으며, 설치 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
파일 내부의 텍스트를 검색하기 위해 설치할 수 있는 그놈 앱 (우분투 저장소에서 찾을 수 있음)이 있습니다 (odt-ods-odp-pdf 시도) . 패키지에는 4 개의 다른 패키지가 설치되어 제공됩니다 (트래커 추출, 트래커 GUI, 트래커 마이너 -fs, 트래커 유틸리티) Namastè :)
더 간단하고 빠른 것은 "실버 검색기" sudo apt-get install silversearcher-ag
입니다. https://github.com/ggreer/the_silver_searcher 에서 왜 다른 것보다 ack *보다 나은지에 대한 이유를 살펴보십시오 .
grep -r word .
.