ファイル拡張子からクエリパラメータを削除する方法
以下のように260,000枚の画像ファイルをダウンロードしました。
filename.jpg?
filename2.jpg?
filename3.jpg?
ファイル拡張子で問題のある "?"の名前を簡単に変更または削除するにはどうすればよいですか?
様々なosxパッケージを試してみました。
Finder
A better Finder Rename 11
Name Mangler
Renamer
vRenamer
...しかし、それらのどれもそれをすることはできません。
-most packages cannot seem to access the '?' in the file exenstion
-Name Mangler can suucesfuly append and extra ".jpg" to file, giving me filename3.jpg?.jpg
i could work with this, but it also can only do 5000 files at a time, which means 50 batches :-/
効率的な端末コマンドが必要です。ヒントをいただきありがとうございます!
ありがとう
マシュー
ベストアンサー1
あなたはそれを使用することができますパラメータ拡張そしてbash
。
以下のスクリプトは?
ファイル名の内容をすべて削除するため、ファイル名がある場合は次のようfile?name.jpg?
に置き換えられますfilename.jpg
。
#!/bin/bash
for file in ./*; do
mv "file" "${file//\?/}"
done
または1行のスクリプト:
for file in ./*; do mv "$file" "${file//\?/}" ; done
最後の文字(たとえば)のみを削除するには、?
次のように使用できます。
#!/bin/bash
for file in ./*; do
mv "$file" "${file%?}"
done
または1行のスクリプト:
for file in ./*; do mv "$file" "${file%?}" ; done
メモ:ファイルがあるディレクトリに配置する必要があります。それ以外for file in ./*
の場合for file in /path/to/your_working_directory/*
。
名前変更の使用
コマンドを使用してファイル名を簡単に変更できますrename
。 macOSではインストールできない可能性があるため、以下をインストールする必要があります。
brew install rename
このコマンドがmacOSで動作しているかどうかはわかりません。私はLinuxでテストしましたが、file-rename
私が知っているものはどちらも同じです。私が間違っていたら、今教えてください。
?
このスクリプトは、各ファイル名の末尾にある:を削除します。
rename 's/\?$//' *
#or
rename 's/\?$//' /path/to/your_working_directory/*
これにより、すべての?
ファイル名が削除されます。
rename 's/\?//g' *
#or
rename 's/\?//g' /path/to/your_working_directory/*