内容のないファイルの英数字以外の文字と数字の名前を変更します。

内容のないファイルの英数字以外の文字と数字の名前を変更します。

! , ( ) ^ & .アルファベット以外の文字などを含むフォルダには.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:]-]/}

関連情報