法的な電子情報開示システムから大量にエクスポートされた何百ものpdf
ファイルとxls(x)
ファイルを含むフォルダーがあります。これらのエクスポートのファイル名は、_ABCD_00000001.pdf
_、_ABCD_00000002.pdf
_、...、_ABCD_00002000.pdf
_などのベイト#に対応しています。これらの一括エクスポートには、すべてのシングルxls(x)
ファイルの空白のpdf
ファイルが含まれ、両方ともまったく同じファイル名を持っています。たとえば、_ABCD_00000005.xlsx
_は電子情報開示システムで作成されたxlsxファイルであり、_ABCD_00000005.pdf
_は大量エクスポートで作成された無関係な空白のPDFファイルです。
これらの無関係な.pdfファイルは、これらの大量エクスポートを実行しているユーザーのエラーが原因である可能性がありますが、通常、プロセスのその側を制御することはできません。したがって、誰かに手動で実行させることなく、これらの無関係な.pdfを削除する比較的簡単な方法があるかどうかを知りたいと思いました。
PDFファイルをループし、パラメーター展開を使用してベース名を抽出します。
#!/bin/bash
for pdf in *.pdf ; do
basename=${pdf%.pdf}
if [[ -f $basename.xls || -f $basename.xlsx ]] ; then
rm "$pdf"
fi
done
更新:ロジックが逆になりました。修正する必要があります。
.xls(x)ファイルをループし、一致するpdfファイルを削除します。
for xls in *.xls* ; do
/bin/rm -f "${xls%.xls*}"".pdf"
done
一致するPDFがない場合でも、何も害はありません。