bash:如何连接两个命令的输出,以便可以将它们传送到第三个命令?
$ hg status
并
$ hg status --ignored
给出非常相似的输出。我想将它们连接起来,这样我就可以将它们提供给 awk,就好像有一个 hg status --all (或 svn 的 svn status --no-ignore)
我在想这样的事情:
$ echo "$(hg status)" "$(hg status --ignored)" | awk ' ( $1 == "?" ) || ( $1 == "I") { print $2 }' | xargs rm -r
制作一个“确实非常干净”的命令,但它似乎偶尔会留下一个文件,也许是因为换行符丢失或其他原因。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用 花括号对命令进行分组:(
发布为来自camh 的评论)
Use curly braces to group commands:
(Posted as an answer from camh's comment)
您可以使用子外壳:
You can use a subshell:
您可以使用其余的 hg 状态标志来显示您真正想要的内容:
显示未知文件 (u)、已删除文件 (r)、已忽略 (i)、已添加 (a)、已修改 (m) 以及不显示的情况状态前缀。
You can use the rest of the hg status flags to show what you really want:
That shows unknown files (u), removed files (r), ignored (i), added (a), modified (m) and does so without showing the status prefix.
这对我有用:
如果你添加“”,你可以添加分隔符,例如:
我在 Openwrt 上使用它来广播我的 ip 设置:
This works for me:
if you add "" you can add delimiters eg.:
I use this on Openwrt to broadcast my ip settings: