pdftotext 조회의 색상으로 구분된 결과 정렬 및 보존

pdftotext 조회의 색상으로 구분된 결과 정렬 및 보존

결과를 정렬하지 않는다는 점을 제외하면 완벽하게 작동하는 find 명령이 있습니다. path = 검색할 폴더 경로 foo = 검색어

find /path/ -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color -i "foo"' \;

결과(내 화면에서는 "foo"가 빨간색임)

me@myComp ~ $ find /path/ -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color -i "foo"' \;
/path/lesson 05.pdf:a foo
/path/lesson 05.pdf:  (to have) a foo when I was 10 years old.
/path/lesson 07.pdf:a foo
/path/lesson 07.pdf:Elephant – foo – heavy
/path/lesson 07.pdf:Elephant – foo – heavy – light
/path/lesson 07.pdf:tigers – high – foos – to jump
/path/lesson 04.pdf:10 My foo (not to eat) fat.
/path/lesson 06.pdf:A: John lost the foos collar. B: Is this its ? (rarely used)
/path/lesson 06.pdf:A: This is my foo. .......... is a chihuahua. .......... name is Sleeper.

foo를 빨간색으로 유지하면서 경로/파일 이름을 기준으로 알파벳순으로 결과를 정렬하는 방법이 있습니까? 보시다시피 Lesson 04.pdf는 Lesson 07.pdf와 Lesson 06.pdf 사이에 있습니다.

|최종 정렬을 사용하면 foo가 더 이상 빨간색이 아니라는 점을 제외하면 원하는 결과를 얻을 수 있습니다.

매우 감사합니다

답변1

나는 이것이 당신이 원하는 것을 해야 한다고 생각합니다.

while read file; do pdftotext "$file" | grep --with-filename --label="$file" --color -i "foo"'; done < <(find /path/ -name '*.pdf' | sort)

관련 정보