我的文件夹中有大量文件,其名称如下:
abc.test.txt
edf.main.txt
num2.tb.doc
file3.map.csv
file4.test.csv
我希望这些文件被重命名,以便.
删除之间的文本,并且上面的文件被重命名如下:
abc.txt
edf.txt
num2.doc
file3.csv
file4.csv
这可能吗?
我发现了类似的东西,但不能满足我的需要。
答案1
答案2
使用 perl 重命名实用程序:
prename 's/\.[^.]*\././' *
prename
允许您使用 perl 表达式重命名文件。
在某些系统上,相同的程序被调用rename
而不是(或以及)prename
。还有一些其他程序的rename
工作方式非常不同 - 检查rename
系统上的手册页以确保确定。
例如,默认情况下,rename
在 Debian 系统上是一个符号链接prename
(通过/etc/alternatives
系统)。其他发行版可能有所不同。
Debian 还有一个名为 的软件包,其中包含名为rename
的增强版本。这是同一脚本的更新版本。它在替代方案中具有更高的优先级,因此安装该包会将符号链接更改为.prename
file-rename
rename
file-rename
答案3
这应该照顾好它
for file in $(find ./)
do
newname=$(echo ${file} | sed -e 's/\.\(.*\)\././')
mv ${file} ${newname}
done