将标准输出重定向到缓冲编辑器,然后再将其管道传输给其他命令

3
我正在尝试清理本地的git分支。有相当多的分支,我不想对所有分支执行 "git branch -D branchname" 命令。也没有涵盖所有我想删除的分支的模式。然后我想起曾经看到有人将stdout导入缓冲区编辑器中,我认为那听起来很完美。
我想将“git branch -l”的输出导入nano中进行编辑,然后(在退出nano时)将最终缓冲区作为输入提供给另一个命令(具体而言是“xargs git branch -D”)。
经过一番尝试没有成功后,这已成为与在fly上编辑缓冲区相关的学术问题 - 所以,请不要提供针对Git的特定解决方案。我想知道如何在Bash单行命令中实时编辑缓冲区,因为它似乎是可以让我升级到神的bash-fu类型。可接受的答案也应该适用于被夹在例如“find”和文件或路径操作之间(如“rm”,“cat”或“grep”)。
1个回答

3
分号是一种完全可接受的运算符。
git branch -l > /tmp/branches; nano /tmp/branches; whatever /tmp/branches; rm /tmp/branches

这个命令可以运行:git branch -l > /tmp/branches; nano /tmp/branches; cat /tmp/branches | xargs git branch -D; rm /tmp/branches。我仍然希望找到一个不需要清理文件的版本,但如果没有其他更好的解决方案,我会将其标记为答案。谢谢! - Tom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接