0

现在我有

echo 'abcdef' | gzip | wc -c

我想要的是

$(| gzip | wc -c) ???mystery-pipe-operator??? echo 'abcdef'

或者

$(gzip | wc -c) <(echo 'abcdef')

但当然,它们都不起作用,因为我不知道自己在做什么。我想将回显重组到最后,以便在我向上和向下导航我的命令行历史记录时可以轻松地编辑字符串。我正在使用zsh。我知道 Ctrl-R 可以进行反向增量搜索,但这太麻烦了。

谢谢!

4

2 回答 2

1

在 zsh(以及 bash)中,您可以将复合命令与进程替换一起使用:

{ gzip | wc -c; } < <(echo abcdef)

甚至使用“这里的字符串”:

{ gzip | wc -c; } <<<abcdef
于 2013-08-06T07:50:26.390 回答
1

这样做可能更容易:

$ s=abcdef
$ echo "$s" | gzip | wc -c

然后s在重复历史命令之前重新定义。或者使用一个函数:

$ foo() { echo "$*" | gzip | wc -c; }
$ foo abcdef
于 2013-08-06T02:27:49.613 回答