スペースを含む複数のファイルの名前を変更する方法が必要です。私は持っています:
>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つです。ほとんどのディストリビューションは、rename
Debian、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