Ich konnte keinen Weg finden, find
direkt damit umzugehen, aber es ist sehr einfach, eine for-Schleife zu verwenden:
for file in *.pdf; do [ -f $.csv ] || echo $file; done
Wenn Sie es im obersten Verzeichnis ausführen müssen, um es erneut aufzurufen, können Sie find wie folgt verwenden:
for file in $(find . -iname '*.pdf'); do [ -f $.csv ] || echo $file; done
was würde so etwas ausgeben:
./dir2/test7.pdf ./dir2/test6.pdf ./dir2/test8.pdf ./dir3/test7.pdf ./dir3/test6.pdf ./dir3/test8.pdf ./dir1/test7.pdf ./dir1/test6.pdf ./dir1/test8.pdf
Wenn Sie sich jedoch nicht sicher sind, ob sich in den Dateinamen der Eingabedateien seltsame Zeichen befinden, stellen Sie sicher, dass Sie die IFS- Umgebungsvariable entsprechend festlegen:
OFS=$IFS export IFS=$'\n'
Natürlich wird es ab jetzt nur noch schlimmer.
Ich gehe davon aus, dass Sie bash verwenden.