сортировка с сохранением цветного результата из pdftotext find

сортировка с сохранением цветного результата из pdftotext find

У меня есть команда 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 красным? Как видите, урок 04.pdf находится между уроками 07.pdf и 06.pdf.

использование | sort в конце дает желаемые результаты, за исключением того, что foo больше не отображается красным.

большое спасибо

решение1

Я думаю, это должно сделать то, что вам нужно:

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

Связанный контент