ファイル名に表示される文字の変更 [重複]

ファイル名に表示される文字の変更 [重複]

+現在の作業ディレクトリのすべてのファイル名に表示されるすべての文字を空白文字に置き換えるにはどうすればよいですか?

私は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使用可能な同じコマンドについて話していることに言及する必要があります。prenamerenamentzrmtthihu777からの返信

答え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番目の結果を交換してくださいechomvこれは、ループが実行されるディレクトリのすべてのファイル名が変更されるためです。

答え3

私は個人的にこのような仕事にperl-renameを使用するのが好きです。たとえば、私は perl-rename 's:_: :g' file_name_hereすべての下線を空白に変更してfile name heresedの名前を変更するのと同じだと思います。

関連情報