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 に答える