在bash中重命名批量文件,以删除带有空格的名称,留下尾随数字

Nas*_*ser 3 regex bash shell

bash/shell 专家可以帮助我吗?每次我使用 PDF 将大型 pdf 文件(比如它的名称X.pdf)拆分为单独的页面时,其中每一页都是一个 pdf 文件,它会创建具有这种模式的文件

"X 1.pdf"
"X 2.pdf"
"X 3.pdf"  etc...
Run Code Online (Sandbox Code Playgroud)

上面的文件名“X”是原始文件名,可以是任意的。然后在名称后添加一个空格,然后是页码。页码总是从 1 开始,一直到多少页。adobe PDF 中没有选项可以改变这一点。

我需要运行一个 shell 命令来简单地删除/去除所有的“X”部分,只留下数字,就像这样

1.pdf
2.pdf
3.pdf 
....
100.pdf  ...etc..
Run Code Online (Sandbox Code Playgroud)

不擅长模式匹配,不确定我需要什么正则表达式。

我知道我需要类似的东西

for i in *.pdf; do mv "$i$"  ........;  done
Run Code Online (Sandbox Code Playgroud)

这是.......我不知道该怎么做的部分。

这只需要在 Linux/Unix 系统上运行。

Avi*_*Raj 5

使用sed..

for i in *.pdf; do mv "$i" $(sed 's/.*[[:blank:]]//' <<< "$i");  done
Run Code Online (Sandbox Code Playgroud)

它会很简单通过 rename

rename 's/.*\s//' *.pdf
Run Code Online (Sandbox Code Playgroud)