grep 検索式とファイル名の変更

grep 検索式とファイル名の変更

読み取り可能なPDFファイルがあり、すべて文字列VAXと8つの数字が含まれていますVAX00002885

さて、その式を見つけて、そのPDFの名前を変更したい VAX00002885.pdf(この場合)。

どうすればいいですか?

答え1

これを試してみてください(GNU grepと仮定):

for pdf in *pdf; do
    mv "$pdf" "$(grep -aE 'VAX[0-9]*' "$pdf" | sed 's/.*\(VAX[0-9]*\).*/\1/)"
done

これは1つしかないと仮定しますVAXNNNNNNN。さらに可能な場合は、最初の一致のみを使用してください。

for pdf in *pdf; do
    mv "$pdf" "$(grep -m 1 -aE 'VAX[0-9]*' "$pdf" | sed 's/.*\(VAX[0-9]*\).*/\1/)"
done

関連情報