パターンを使用してファイル名を一括変更する

パターンを使用してファイル名を一括変更する

次の名前のファイルがあります。

63018933.mp4?トークン=1325697436_b0c3e70c6e339380b4a484c576a8c287

63808488.mp4?トークン=1325697401_4ae5f7a68d93873c8881b303e7655e14

たとえば、63018933.mp4(mp4の後の文字を削除)に名前を変更するにはどうすればよいですか?

答え1

このツールがある場合rename(1)(DebianまたはDebianベースのLinux(Ubuntuとその派生製品を含む)がある場合は、このツールを使用できます):

rename -n 's/\.mp4.*$/.mp4/' *mp4*

正しいパターンがあると確信している場合は、削除-n(模擬実行)して正常に実行するようにしてください。

rename(1)与えられたファイル名にPerl正規表現を適用します。

他のほとんどのLinuxディストリビューションには、renameこの特定の名前変更モードには役立たない他のファイルの名前変更手順があります。

答え2

これは1つの方法です。

for file in *.mp4\?token*; do mv --no-clobber "$file" "${file%%\?*}"; done

答え3

そしてmmv:

mmv -n "*.mp4*" "#1.mp4"

出力が正しい場合は「-n」を削除してください。

関連情報