vis*_*hal 4 command-line scripts files rename batch-rename
我在具有扩展名的目录中有许多文件。
.text(2)
.text(1)
Run Code Online (Sandbox Code Playgroud)
我想从扩展中删除数字,输出应该像
.text
.text
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我使用 shell 脚本吗?我正在使用 CentOs 6.3。
在保存文件的文件夹中启动单行或更改find
命令的路径。在以下示例中find .
,路径是.
(点)。
测试:
find . -type f -print0 | xargs -I{} -0 rename -v -n 's/\([0-9]+\)$//' {}
Run Code Online (Sandbox Code Playgroud)
重命名为:
find . -type f -print0 | xargs -I{} -0 rename -v 's/\([0-9]+\)$//' {}
Run Code Online (Sandbox Code Playgroud)
该命令递归地查找所有文件并删除所有出现(<any_number>)
在文件名末尾的 。
删除$
in's/\([0-9]+\)$//'
以删除文件名中某处的所有出现,例如:
find . -type f -print0 | xargs -I{} -0 rename -v 's/\([0-9]+\)//' {}
Run Code Online (Sandbox Code Playgroud)
例子:
% ls -oga
-rw-rw-r-- 1 0 Jun 10 09:34 .foo(1)
-rw-rw-r-- 1 0 Jun 10 09:34 .bar(2)
% find . -type f -print0 | xargs -I{} -0 rename -v 's/\([0-9]+\)$//' {}
% ls -aog
-rw-rw-r-- 1 0 Jun 10 09:34 .foo
-rw-rw-r-- 1 0 Jun 10 09:34 .bar
Run Code Online (Sandbox Code Playgroud)