首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替代sed . <( cmd )和cmd\ sed

替代sed . <( cmd )和cmd\ sed
EN

Stack Overflow用户
提问于 2013-07-29 15:09:07
回答 1查看 1.1K关注 0票数 2

我想将命令设置为程序的配置选项。有传递给命令的参数。

但是我希望用sed替换命令的输出。

原则上,我想做这样的事情:

代码语言:javascript
复制
option = cmd <arg1> <arg2> | sed s/x/y/

但该选项只能这样设置:

代码语言:javascript
复制
 option = cmd

这些参数由程序自动附加。

所以我想像这样“倒转”管道:

代码语言:javascript
复制
 option = sed s/x/y/ < <(cmd)

但是,由于程序附加了参数,因此将执行以下操作:

代码语言:javascript
复制
 sed s/x/y/ < <(cmd) <arg1> <arg2>

但我想

代码语言:javascript
复制
 sed s/x/y/ < <(cmd <arg1> <arg2>)

由于参数的选项中没有占位符,所以我无法正确地关闭括号。

如果不编写包装器脚本,有什么办法可以避免这种情况吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-29 15:23:13

如果你在引用时很小心,你可以这样做:

代码语言:javascript
复制
option = bash -c 'cmd "$1" "$2" | sed "s/x/y/"' sub

结尾处的"sub“一词是任意的,但它是必要的,因为使用bash -c创建的子there中的bash -c实际上是第二个位置参数,而不是第一个位置参数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17927626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档