我有数百个文件夹pdf
和xls(x)
从合法电子取证系统批量导出的文件。这些导出中的文件名对应于 bates #,例如ABCD_00000001.pdf
, ABCD_00000002.pdf
, ... , ABCD_00002000.pdf
.这些批量导出包括一个空白pdf
文件每一个 xls(x)
file - 两者具有完全相同的文件名。例如,ABCD_00000005.xlsx
是在 ediscovery 系统中生成的 xlsx 文件,ABCD_00000005.pdf
是在批量导出中创建的无关的空白 pdf 文件。
这些无关的 .pdf 文件可能是由于运行这些批量导出的人员的用户错误造成的,但我通常无法控制该过程的这一方面。所以我想知道是否有任何相对简单的方法来删除这些无关的 .pdf,而不强迫某人手动检查它们。
答案1
循环 pdf 文件,使用参数扩展来提取基本名称:
#!/bin/bash
for pdf in *.pdf ; do
basename=${pdf%.pdf}
if [[ -f $basename.xls || -f $basename.xlsx ]] ; then
rm "$pdf"
fi
done
更新:我的逻辑倒退了,现在应该修复了。
答案2
循环 .xls(x) 文件并删除匹配的 pdf 文件。
for xls in *.xls* ; do
/bin/rm -f "${xls%.xls*}"".pdf"
done
如果没有匹配的 pdf 也不会造成任何损害。