我有一些这样的文件:
??? abc.conf
??? def.conf
??? xyz.conf
??? 10-abc.conf.postix
??? 10-def.conf.postix
Run Code Online (Sandbox Code Playgroud)
我想.postfix从所有以10-. 为了在不安装任何工具的情况下执行此操作,我尝试使用bash,find和来执行此操作sed。
我建立了这个:
$ find . -name "10-*.conf.postfix" -exec mv '{}' $(echo {} | sed -E 's/(.*)\.postfix$/\1/') \;
Run Code Online (Sandbox Code Playgroud)
但它失败了,因为mv-command 将呈现为:
$ mv '10-abc.conf.postix' 10-abc.conf.postix
Run Code Online (Sandbox Code Playgroud)
如果我在我的子 shell 中测试代码,那么它会按预期工作(它返回不带 的文件名.postifx)。我不确定出了什么问题。你对我有什么暗示吗?