Tom*_*mba 5 regex batch-rename
我有一个目录,其中包含具有这种格式名称的文件(每个文件名以数字开头):
102_file.txt
104_list.txt
242_another_file.txt
Run Code Online (Sandbox Code Playgroud)
我想将它们重命名如下(即删除数字):
file.txt
list.txt
another_file.txt
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议一种方法来做到这一点(大概是从终端)?
我假设你的 mac 上有 bash shell。
您可以使用 bash参数扩展来实现:
for name in *; do mv -v "$name" "${name#[0-9]*_}"; done
Run Code Online (Sandbox Code Playgroud)
这将删除直到第一个的所有数字_。
注意:这将覆盖最终具有相同名称的文件。
例子:
$ ls -1
000_file0.txt
001_file1.txt
002_file1.txt # <-- same name
003_003_file3.txt
$ for name in *; do mv -v "$name" "${name#[0-9]*_}"; done
`000_file0.txt' -> `file0.txt'
`001_file1.txt' -> `file1.txt'
`002_file1.txt' -> `file1.txt' # <-- overwrite
`003_003_file3.txt' -> `003_file3.txt'
Run Code Online (Sandbox Code Playgroud)