小编ako*_*kop的帖子

Subshel​​l 不能像缩进那样工作

我有一些这样的文件:

??? 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)。我不确定出了什么问题。你对我有什么暗示吗?

bash sed find

4
推荐指数
1
解决办法
185
查看次数

标签 统计

bash ×1

find ×1

sed ×1