现在我有
echo 'abcdef' | gzip | wc -c
我想拥有的是
$(| gzip | wc -c) ???mystery-pipe-operator??? echo 'abcdef'
或
$(gzip | wc -c) <(echo 'abcdef')
但当然,它们都不起作用,因为我不知道我在做什么。我想重新构造回声到最后,以便当我按下向上和向下导航我的命令行历史记录时,我可以轻松地编辑字符串。我正在使用zsh。我知道Ctrl-R可以进行反向增量搜索,但这太麻烦了。
谢谢!
答案 0 :(得分:1)
可能更容易做到:
$ s=abcdef
$ echo "$s" | gzip | wc -c
然后在重复历史记录中的命令之前重新定义s
。或者使用函数:
$ foo() { echo "$*" | gzip | wc -c; }
$ foo abcdef
答案 1 :(得分:1)
在zsh(以及bash中)中,您可以将复合命令与进程替换一起使用:
{ gzip | wc -c; } < <(echo abcdef)
甚至是“here string”:
{ gzip | wc -c; } <<<abcdef