![сортировка с сохранением цветного результата из pdftotext find](https://rvso.com/image/168779/%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0%20%D1%81%20%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%D1%86%D0%B2%D0%B5%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%D0%B0%20%D0%B8%D0%B7%20pdftotext%20find.png)
У меня есть команда 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)