複数のファイルの名前をサフィックスに変更します。

複数のファイルの名前をサフィックスに変更します。

スペースを含む複数のファイルの名前を変更する方法が必要です。私は持っています:

>ls
Garbage Foo1.txt
Garbage Foo2.txt
Garbage Foo3.txt
Garbage Foo4.txt
...

以下を行う必要があります。

Foo1.txt
Foo2.txt
Foo3.txt
Foo4.txt
...

これを行う方法についてのアイデアはありますか?

答え1

Perlの名前を変更する:

rename -n 's/.*\s+//' *.txt

-nスイッチを取り外すと、実際にこれを行うことができます。 ( -n== テスト実行)

答え2

renameこれは、util-linuxファミリのユーティリティが作業を実行するのに少数のケースの1つです。ほとんどのディストリビューションは、renameDebian、Ubuntu、およびそれらの派生物でrenameこのユーティリティを提供しています。より多様で強力なユーティリティutil-linuxユーティリティはと呼ばれますrename.ul

rename 'Garbage ' '' *.txt

完全に移植可能なソリューションは次のとおりです。

for x in *.txt; do
  mv -- "$x" "${x#'Garbage '}"
done

答え3

ちょうどbashを使用してください:

for file in ./*.txt; do mv -- "$file" "${file/Garbage /}"; done

関連情報