Bash - スペースをアンダースコアに置き換え、複数のスペースを1つに置き換えます。

Bash - スペースをアンダースコアに置き換え、複数のスペースを1つに置き換えます。

私はrenameファイル名のスペースに下線を引くのに慣れています。以下を使用してください。

rename "s/ /_/g" * 

ところで問題が発生しました。インターネットからダウンロードしたファイルには複数のスペースがあることがよくあります。私は不快な解決策を使用しましたが(ほとんどの場合は3つのスペースでのみ機能します)、次のものよりもエレガントな方法が必要です。

rename "s/   /_/g" *; rename "s/  /_/g" *; rename "s/ /_/g" *

ベストアンサー1

以下は私にとって効果的でした。

rename 's/\s+/_/g' *

空白の1つのインスタンスから無限のインスタンスまで一致します。

これは改行やタブでも機能しますが、ユースケースに応じてこれがより良く不要ではないと思いますか?ただし、スペースを具体的に一致させるには、次のようにします。

rename 's/ +/_/g' *

おすすめ記事