在 Mac OS X 中从文件名中删除数字

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)

任何人都可以建议一种方法来做到这一点(大概是从终端)?

les*_*ana 8

我假设你的 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)