我有如下文件。总共有四个文件:
cert1.pem chain1.pem fullchain1.pem privkey1.pem
我想修剪每个文件的尾号(1
此处)。如何使用 shell 脚本自动处理它?我熟悉一些命令,但我认为我不擅长编写shell脚本来处理这种批处理。
答案1
如果尾随数字是单个数字,并且它们都是.pem
文件,您可以使用参数扩展来去除数字和扩展名,然后替换扩展名:
for file in cert1.pem chain1.pem fullchain1.pem privkey1.pem
do
mv "$file" "${file%%?.pem}.pem"
done
%%
参数扩展的工作原理是删除任何单个字符 () 的最长尾随匹配 ( ?
),后跟.pem
;完成后,我们手动.pem
在末尾添加回 。
请注意,这也会重命名文件,例如certX.pem
或fullchain-.pem
,因为该?
字符会扩展为任何单个字符。
在上面的示例中,这变得更安全,因为我已经手动列出了要重命名的文件。您也可以使用类似的方法:
for file in *1.pem
do
mv "$file" "${file%%?.pem}.pem"
done
...它显式地循环遍历1.pem
名称末尾带有 的文件。
设置:
$ ls
cert1.pem chain1.pem fullchain1.pem privkey1.pem
执行:
$ for file in cert1.pem chain1.pem fullchain1.pem privkey1.pem
do
mv "$file" "${file%%?.pem}.pem"
done
结果:
$ ls
cert.pem chain.pem fullchain.pem privkey.pem