! , ( ) ^ & .
アルファベット以外の文字などを含むフォルダには.jpgファイルがたくさんあります。
A-Z a-z 0-9
存在しないすべてのエントリが他のエントリに置き換えられるように、このファイルの名前を変更する必要があります。また、スペースは.mp4$$$.jpg で終わるファイルに置き換える必要があり、-
この部分は変更されないままにする必要があります。
たとえば、ファイルが呼び出された場合
ask me anything.mp4001.jpg
ask, me. anything! 2.mp4001.jpg
ファイル名は次のように変更する必要があります。
ask-me-anything.mp4001.jpg
ask-me-anything-2.mp4001.jpg
答え1
Bashを使用すると、次のことができます。
for f in *.jpg
do
if [[ $f =~ ^(.*)(\.mp[[:digit:]]+\.jpg) ]]
then
prefix=${BASH_REMATCH[1]}
suffix=${BASH_REMATCH[2]}
prefix=${prefix//[^[:alnum:] ]/}
prefix=${prefix// /-}
echo mv -- "$f" "${prefix}${suffix}"
fi
done
*.jpg
これはファイルを繰り返し、各ファイル名を次のパターンと一致させようとします。(anything)次に.mp
(one or more number).jpg
。ファイル名が一致したら、解凍して名前を変更します。サフィックスにはピリオドが含まれているため、プレフィックスからピリオドを削除するために別々に保存します。英数字または空白以外のすべての項目を削除した後、すべての空白をダッシュに置き換えます。次に、コマンドのファイル名を再構成し、結果がmv
正しいecho
と思われる場合は削除します。
元のファイル名にダッシュを保持するには、最後の2つの割り当てをprefix
次に置き換えます。
prefix=${prefix// /-}
prefix=${prefix//[^[:alnum:]-]/}