8개의 다른 디렉토리를 포함하는 디렉토리가 있다고 가정해 보겠습니다 Note_De_cours
.
Semaine_1 Semaine_3 Semaine_5 Semaine_7
Semaine_2 Semaine_4 Semaine_6 Semaine_8
각 디렉토리에는 일부 PDF 파일이 포함되어 있습니다. 모든 PDF에서 동시에 단어 또는 단어 그룹을 검색하는 명령줄이 있습니까? PDF를 열고, 누르고 Ctrl + f
, 단어를 검색하는 것이 귀찮습니다. 을 사용해볼까 생각했지만 grep
, 저는 실제로 전문가가 아닙니다. 어쩌면 이를 수행하는 다른 최적의 방법이 있을 수도 있습니다.
모든 PDF 파일을 동시에 보려면 머물 Note_De_Cours
면서 신청하고 싶습니다 . pdfgrep
어떤 파일에 내가 원하는 단어나 단어 집합이 포함되어 있는지 알려주는 명령을 원합니다. 어떻게 해야 하나요?
편집하다
이 명령을 반복할 수 find elem -iname '*.pdf' -exec pdfgrep "baysien optimal" {} +
있습니까 elem
? 그것은 마치for elem in ...; do find elem -iname '*.pdf' -exec pdfgrep "baysien optimal" {} +
해봤 for i in 1 2 3 4 5 6 7 8; do find Semaine_$i -iname '*.pdf' -exec pdfgrep "taux" {} +; done
지만 원본 파일이 출력되지 않습니다.
답변1
바꾸다
for i in 1 2 3 4 5 6 7 8; do find Semaine_$i -iname '*.pdf' -exec pdfgrep "taux" {} +; done
파일 이름을 인쇄하려면 find에서 -print(일치 후 이름 인쇄)를 사용하거나 grep에서 -l(일치 대신 이름 인쇄)을 사용하세요.
find Semaine_[1-8] -iname '*.pdf' -exec pdfgrep "taux" {} \; -print
또는
find Semaine_[1-8] -iname '*.pdf' -exec pdfgrep -l "taux" {} \;
또한 pdfgrep
전달 플래그에는 재귀 기능이 내장되어 있으므로 -r
간단히 다음을 수행할 수 있습니다.
pdfgrep -r -l "taux" Semaine_[1-8]
답변2
grep 명령을 직접 사용해도 결과가 나오지 않습니다. Linux Minimal 패키지에 포함된 애플리케이션은 vi와 nano가 읽을 수 있는 파일만 처리할 수 있기 때문입니다. (grep, awk 등) PDF와 같은 특수 파일 형식을 위한 다양한 도구와 대안이 있습니다. Dspace와 같은 오픈 소스 보관 소프트웨어를 설치하면 브라우저에서 모든 PDF를 검색하고 카탈로그화할 수 있습니다. 모듈을 추가하면 PDF 작업이 향상될 수 있습니다. 또는 명령줄 기반 응용 프로그램을 사용하여 PDF 파일을 pdftotext와 같은 일반 텍스트 파일로 변환할 수 있습니다. pdftotext에 대한 검색 명령의 예:
pdftotext /file/semaine.pdf - | grep -n -i "Semaine"
-N:줄 번호를 인쇄합니다. -나:대문자와 소문자는 구별되지 않습니다.
wc -l
명령 끝에 추가하여 찾고 있는 용어가 몇 번이나 나타나는지 확인할 수 있습니다.
awk와 파이프라인 뒤에 추가된 파생 매개변수를 사용하면 보다 효율적인 결과를 얻을 수 있습니다.
위에서 언급했듯이 여러 가지 방법이 있습니다. 나는 이 두 가지 다른 옵션을 제안할 수 있습니다.