find . | grep "\.doc$"
Tím se také zobrazí cesta.
ls
příkazový výstup je určen hlavně pro čtení lidmi. Pro pokročilé dotazování pro automatizované zpracování byste měli použít výkonnější find
příkaz:
find /path -type f \( -iname "*.doc" -o -iname "*.pdf" \)
Jako byste měli bash 4.0++
#!/bin/bash
shopt -s globstar
shopt -s nullglob
for file in **/*.{pdf,doc}
do
echo "$file"
done
Pokud vám více vyhovuje „ls“ a „grep“, můžete si dělat, co chcete, pomocí regulárního výrazu v příkazu grep (koncový znak „$“ znamená, že na konci řádku musí být .doc. vyloučit "soubor.doc.txt"):
ls -R |grep "\.doc$"
Další informace o použití grep s regulárními výrazy v man.