![ファイル名に表示される文字の変更 [重複]](https://linux33.com/image/34416/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%90%8D%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E6%96%87%E5%AD%97%E3%81%AE%E5%A4%89%E6%9B%B4%20%5B%E9%87%8D%E8%A4%87%5D.png)
+
現在の作業ディレクトリのすべてのファイル名に表示されるすべての文字を空白文字に置き換えるにはどうすればよいですか?
私はLinuxコマンドがあることを知っていますが、rename
このコマンドを使用してこれを行う方法がわかりません。
例:
初期+クリスチャン - >初期クリスチャン
答え1
努力する:
rename -n 'y/+/ /' *
y
あるセットの文字を別のセットに変換するために使用されます。次の例を考えてみましょう。man rename
:
To translate uppercase names to lower, you'd use
rename 'y/A-Z/a-z/' *
式をテストするために使用されます-n
。結果がうまくいけば、rename
結果なしで実行して実際の名前変更を実行できます。
rename
私はDebianベースのLinuxディストリビューションで呼び出され、perl-rename
使用可能な同じコマンドについて話していることに言及する必要があります。prename
rename
ntzrmtthihu777からの返信。
答え2
ファイル名の変更も使用できますmv
。コピーして端末に貼り付けるか、スクリプトに変換してください。
for f in *; do
# check if its a file
if [[ -f "$f" ]]; then
new_name=$(echo "$f" | sed 's/+/ /g')
# replace this echo with mv
echo "$f" "$new_name"
fi
done
結果が満足な場合は、2番目の結果を交換してくださいecho
。mv
これは、ループが実行されるディレクトリのすべてのファイル名が変更されるためです。
答え3
私は個人的にこのような仕事にperl-renameを使用するのが好きです。たとえば、私は
perl-rename 's:_: :g' file_name_here
すべての下線を空白に変更してfile name here
sedの名前を変更するのと同じだと思います。