PDFファイル形式の論文がたくさんあります(同じフォルダに異なる種類のファイルもあります)。パターンを使って名前を変更したい。
<current file name>[<number of pages>].pdf
しかし、何度も試したところ、最後に重複したページ番号を持つ間違ったファイル名がたくさんありました。例えば、
Madsen - 分類[48][48].pdf
だから私はこう考えました。
- すべてのファイル名をクリーンアップし、末尾の括弧に現れる数字をすべて削除します。たとえば、上記のファイルの名前を次のように変更する必要があります。
Madsen-分類.pdf
[<number of pages>]
最後に挿入したすべてのファイルの名前を変更します。
[<number of pages>]
この情報がないため、PDFファイルから読む必要があります。
ベストアンサー1
これは元の問題を完全に解決する簡単な方法です。 1行で書くこともできますが、この構文を使用すると読むことができます。
#!/bin/bash
for F in "$@"
do
echo mv "$F" "${F%.pdf}[$(pdfinfo "$F" | awk '/^Pages/{print $NF}')].pdf"
done
$ ls *pdf
aosa-bash.pdf article.pdf bash.pdf bashref.pdf rose94.pdf
$ find . -name \*.pdf -exec ./pdf.sh {} +
mv ./article.pdf ./article[11].pdf
mv ./bashref.pdf ./bashref[172].pdf
mv ./bash.pdf ./bash[75].pdf
mv ./aosa-bash.pdf ./aosa-bash[14].pdf
mv ./rose94.pdf ./rose94[13].pdf
$
提案された名前の変更に満足している場合は、mv
すべてのコマンドをシェルウィンドウに貼り付けるか、スクリプトを変更して簡単echo mv
ですmv
。