ファイル名からスペース、ハイフン、アンダースコアを削除しますか?

ファイル名からスペース、ハイフン、アンダースコアを削除しますか?

ディレクトリ内のすべてのファイルまたは選択したファイルからスペース、ハイフン、アンダースコアを削除するための良いコマンドは何ですか?

Thunar カスタム操作で次のコマンドを使用して、ファイル名を不明瞭にします。

for file in %N; do mv "$file" "$(echo "$file" | tr -s ' ' | tr ' A-Z' '-a-z' | tr -s '-' | tr -c '[:alnum:][:cntrl:].' '-')"; done

ただし、このコマンドはスペースをダッシュ​​/ハイフンと小文字に置き換えます。

フォルダ内の何千ものファイル名からスペースを削除するには、ターミナルで次のコマンドを使用しました。

 rename "s/ //g" *

繰り返しますが、ハイフン/ダッシュとアンダースコアは削除されず、空白のみが削除されます。

理想的には、ファイル名にスペース、ハイフン/ダッシュ、アンダースコアを使用しないことをお勧めします。このコマンドを選択したファイルの Thunar カスタム操作で使用できればよいでしょう。

ベストアンサー1

renameパッケージに付属のバージョンはperl正規表現をサポートします。

rename "s/[-_ ]//g" *

または、

rename -i "s/[-_ ]//g" *

この-iフラグは、rename対話モードを使用してターゲットを自動的に上書きするのではなく、ターゲットがすでに存在するかどうかを尋ねるメッセージを表示します。

Perlの名前変更は時々と呼ばれますprename

Perlの名前変更とutil-linuxの名前変更

Perlの名前変更がデフォルトのDebianシリーズシステムでは、上記のコマンドが機能します。

一部のディストリビューションでは、renameutil-linux のユーティリティがデフォルトです。このユーティリティはPerlのrename

  • すべて:まず、Perlrename名が利用可能であることを確認してくださいprename

  • ダーバン:Perlの名前変更はデフォルト値でなければなりません。としても機能しますprename。ただし、実行可能ファイルがrename制御されるため、/etc/alternatives他のものに変更することができます。

  • Arch Linux:Runを実行するpacman -S perl-renameと、コマンドがで始まりますperl-rename。より便利な名前を使用するには、エイリアスを作成してください。 (帽子のヒント: ChiseledAbs)

  • アップルコンピュータ~によるとこの回答rename以下を使用してhomebrewを使用してOSXにインストールできます。

    brew install rename 
    
  • ダウンロード: renamePerl Monksは以下も提供しています:

     wget 'http://www.perlmonks.org/?displaytype=displaycode;node_id=303814' -O rename
    

おすすめ記事