27

次のようなさまざまなフォルダーに何百ものjpgファイルがあります。

  • 304775 105_01.jpg
  • 304775 105_03.jpg
  • 304775 105_05.jpg
  • 304775 105_07.jpg
  • 304775 105_02.jpg
  • 304775 105_04.jpg
  • 304775 105_06.jpg

基本的に、スペースを削除する必要があります。スペースをアンダースコアに変更するコマンドはすでに知っています。

$ rename "s/ /_/g" *

ただし、この場合、アンダースコアは必要ありません。スペースを削除するだけです。次のことを試しましたが、うまくいきませんでした。

$ rename "s/ //g" *

どんな助けでも大歓迎です。

4

2 に答える 2

42

以下は、実際にスペースである場合に機能します。

$ rename "s/ //g" *

試す

$ rename "s/\s+//g" *

\sのセットに属する空白文字です[ \t\r\n]

于 2013-03-11T20:25:06.713 に答える
25

次のようなことができます。

IFS="\n"
for file in *.jpg;
do
    mv "$file" "${file//[[:space:]]}"
done
于 2013-03-11T20:31:30.480 に答える