如果我想运行,mv arg1 $(sed arg1 's/regex/replace/')
有没有比将文件名重新插入 sed 命令更好的方法?
答案1
使用rename
如果您安装了 perl 实用程序rename
,则使用:
rename 's/regex/replace/' arg1
为了您的方便,arg1
可以是 glob。
在类似 Debian 的系统上,perlrename
是作为perl
软件包的一部分安装的。但请注意,有些 Linux 系统安装了不同的、不兼容的实用程序,它是 的一部分util-linux
。
使用bash
bash
具有模式替换功能,可用于重命名文件:
f=arg1; mv "$f" "${f//pattern/replace}"
请注意,这pattern
是一个 shell glob,而不是正则表达式。