ordenar manteniendo el resultado codificado por colores de pdftotext find

ordenar manteniendo el resultado codificado por colores de pdftotext find

Tengo un comando de búsqueda que funciona perfectamente excepto que no ordena los resultados. ruta = ruta a la carpeta donde desea buscar foo = término de búsqueda

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

resultado (en mi pantalla 'foo' está en rojo)

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.

¿Hay alguna forma de ordenar el resultado alfabéticamente en la ruta/nombre de archivo mientras se mantiene foo en rojo? Como puede ver, la lección 04.pdf está entre la lección 07.pdf y la lección 06.pdf.

usando | ordenar al final da los resultados deseados excepto que foo ya no está en rojo.

muchas gracias

Respuesta1

Creo que esto debería hacer lo que quieres:

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

información relacionada