根据另一个文件的存在从 UNIX“查找”结果中排除文件

aen*_*dra 1 unix find unix-utils

我有一大堆目录,每个目录都有一系列 .pdf 文件。其中一些文件已成功转换为 .csv,有些则没有。使用以下示例目录列表find ./

./test5.pdf.csv
./test6.pdf
./test1.pdf.csv
./test3.pdf
./test1.pdf
./test3.pdf.csv
./test4.pdf.csv
./test7.pdf
./test2.pdf
./test5.pdf
./test4.pdf
./test2.pdf.csv
./test8.pdf
Run Code Online (Sandbox Code Playgroud)

如何返回成功转换的文件列表?

换句话说,哪些文件没有 .csv.pdf 对应文件?

在本例中,它将是 test{6,7,8}.pdf。

小智 5

下面是它如何与 find 一起使用:

find . -name "*.pdf" | while read F; do test -f "${F}.csv" || echo "$F"; done
Run Code Online (Sandbox Code Playgroud)

使用 find 比 shell globbing 更可取,因为它对参数数量没有限制,并且可以处理空格和特殊字符。