폴더의 파일 내부에서 문자열을 검색하는 방법은 무엇입니까?


98

명령 줄 검색을 피하기 위해 ASCII 파일 내에서 문자열을 검색하는 유틸리티가 있습니까?

명령 줄을 검색하는 방법 (예 : 디렉토리의 모든 파일에서 문자열 "test") /var/x/?


15
당신은 정말로 명령 줄 사용 하지 않고 의미 합니까? 가장 좋은 도구는 grep입니다.
alci

CLI 에서 Silver Searcher 가 더 나은 작업을 수행 할 수 있습니다.
파블로 A

답변:


78

searchmonkey를 사용할 수 있습니다. 이 도구는 리포지토리에서 사용할 수 있으므로 간단하게

sudo apt-get install searchmonkey

반면에 grep을 사용한 명령 줄 검색은 실제로 그 목적을 위해 고안되었습니다.

다음은 searchmonkey의 스크린 샷입니다.

여기에 이미지 설명을 입력하십시오


너무 많은 부하로 인해 충돌이 발생했습니다. (
WiredIn

1
searchmonkey에 문제가 있습니다. 그것은이 발생 전표를 많이 할 수 있습니다 의미에서 신뢰할 수없는
토니 길

GUI에서 "searchmonkey"를 어떻게 실행합니까? 커맨드 라인을 사용하여 설치 한 후 오히려 커맨드 라인을 사용하지 않을 것입니다.
Echeban

153

첫 번째 질문은 grep명령 의 GUI 대안에 관한 것 입니다. 나는 당신을 도울 수 없습니다. 나는 항상 명령 줄이 매우 효과적이라는 것을 알았습니다.

커맨드 라인은 시도해보십시오

grep "test" /var/x/*

재귀 적으로 검색하려는 경우 (즉 /var/x/,의 하위 디렉토리뿐만 아니라 하위 디렉토리)

grep -R "test" /var/x/

grep이 바이너리라고 생각하는 파일을 파기하지 않으려면 다음 -I옵션을 사용하십시오 .

grep -I "test" /var/x/

grep이 파일이 이진 파일이라고 생각하면 (파일의 처음 몇 바이트를 기준으로) 전체 파일을 거치는 대신 일치하지 않는 것으로 가정합니다.


1
폴더에 ASCII가 아닌 파일이 포함되어 있으면 작동합니까?
Anwar

1
grep은 이진 파일에서 문자열을 검색하여 일치하는 경우 다음과 같이보고합니다.Binary file file.jpg matches
January

1
@January 이진 파일을 텍스트로 읽을 때 줄 끝을 지정하는 것으로 해석되는 문자 나 문자 시퀀스가 ​​오랫동안 나타나지 않거나 그럴 수 없기 때문에 종종 "줄"이 매우 깁니다. 각 "라인은"메모리에 완전히 읽은 다음 그것을위한 합리적인 방법입니다 검색 문자열 (일치하는지 확인되는 경우 텍스트 검색 유틸리티가 구현되는 방식에 따라이 성능 문제를 일으킬 수 grepI 불구하고, 코딩하기를 우분투 grep가 그런 식으로 쓰여 졌는지 모른다 ).
Eliah Kagan

1
대소 문자를 구분하지 않는 검색을위한 "grep -i"
Czarek Tomczak

3
이 있어야 *경로 나 GREP의 마지막 슬래시 후에는 14.04에서 어떤 작업을 할 나타나지 않습니다
DavidScherer

20

regexxer 를 사용 하면 정규식을위한 훌륭한 GUI 검색 / 대체 도구입니다.

다음을 통해 다운로드 할 수 있습니다.

sudo apt-get install regexxer

여기에 이미지 설명을 입력하십시오


그것은 매우 빠르지 만,이 응용 프로그램과 관련된 문제는 다음과 같습니다. 1. 읽기 전용 모드가 없으므로 실수로 아무것도 바꾸거나 삭제하지 않습니다. 2. 텍스트를 표시하지만 특정 항목으로 이동하지는 않습니다. 패턴이 일치하는 줄. (색상을 밝은 빨강으로 바꾼 후의 코드를 2000 줄 정도 스크롤했습니다!)
Mehrad Mahmoudian

6

내가 사용한 최고의 GUI 인 Recoll을 사용해보십시오. 현재 지원되는 모든 Ubuntu 버전에 recoll을 설치하려면 터미널을 열고 다음을 입력하십시오.

sudo apt install recoll

파일을 먼저 인덱싱하는 데 약간의 시간이 필요합니다 (블랙리스트 경로 또는 확장명 또는 MIME을 정의 할 수 있음).


Recoll이 gnome-search-tool또는에 관한 완전히 다른 세계임을 확인할 수 있습니다 search-monkey. Xapian을 사용하므로 단어 문서 (.doc 및 .docx), pdf 파일, 메일 폴더 등을 검사하고 색인을 생성 할 수 있습니다.
Avio

deb 패키징 ( sudo apt install recoll)을 통해 사용할 수 있으며 pkzip 압축으로 압축 된 .docx 문서와 같이 grep조차 실패하는 경우 작업을 수행합니다.
Avio

recoll먼저 색인 을 작성 해야합니다.
Yrogirg

5

grep터미널 에서 명령을 사용할 수 있습니다 .

grep -r string *

이 명령은 현재 디렉토리 (또는 하위 디렉토리) 아래의 모든 파일에서 "string"을 모두 찾습니다.

숨겨진 파일의 경우 다음을 사용할 수 있습니다.

grep -r string ..


2

불행히도 grep은 Word (.doc) 파일 내에서 검색 작업이 매우 좋지 않지만 catdoc 출력을 grep으로 파이프 할 수 있습니다. 나는 프로그래머는 아니지만이 작은 스크립트는 나를 위해 잘 작동합니다.

#!/bin/bash
export GREP_OPTIONS='--color=auto'
echo -e "\n
Welcome to scandocs. This will search .doc (NOT .docx) files in this directory for a given string. \n
Type in the text string you want to find... \n"
read response
find . -name "*.doc" | 
while read i; do catdoc "$i" | 
grep -iH --label="$i" "$response"; done

모든 개선과 제안을 환영합니다!


1
이 질문은 그래픽 응용 프로그램 및 일반 텍스트 파일에 관한 것입니다. 나는 모르겠어요 grep.doc질문으로해야한다.
Andrea Corbellini

괜찮습니다.에 대한 1 월의 자세한 답변을 참조하십시오 grep.
13:14에 aquaherd

2

방금 작업을 수행하는 간단한 도구를 출시했습니다. 주로 소프트웨어 개발자를 위해 생각했지만 동일한 창에서 여러 파일을 여는 고유 한 특성이 있습니다. Ace 편집기 (권장!) 또는 html 텍스트 영역을 사용하여 브라우저에 결과를 표시합니다. Java 기반 도구이므로 Linux뿐만 아니라 Windows에서도 실행됩니다.

확인 해봐!

https://sourceforge.net/projects/queacetu.gastona.p/


1

https://askubuntu.com/a/1141367/47073

을 (를) 사용할 수 있으며 mate-search-tool이는 gnome-search-tool제거 된 것과 동일 합니다. searchmonkey에 문제가 있었으며 일부 결과가 누락되어 느려서 권장하지 않습니다.

설치하려면 mate-search-tool:

sudo apt install mate-utils
mate-search-tool

0

메뉴의 Sublime Text Find in Files 옵션을 사용 Find하여 폴더에서 파일 내부의 문자열을 검색 할 수 있습니다 .

숭고한 텍스트 3을 설치하려면

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

질문에 따라 Ubuntu에 Sublime 을 설치하는 다른 가능한 방법 있을 수도 있습니다 .

Sublime Text 의 폴더에서 모든 파일에서 문자열을 검색 하려면 질문에 따라 보다 명확한 답변을 얻을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.