csearch出力を取得して色を指定したいです。次のようになります。
/home/bp/whatever.txt:1:foo
これは働きます:
csearch -n -- $term \
| env GREP_COLORS='mt=02;35' grep --color=always -P '^[^:]+:[^:]+:' \
| grep -P --color=always -- $term \
| less -RFX
csearch
ただし、何も表示する前に出力全体が計算されるのを待ちます。
今これを行う:
csearch -n -- $term \
| env GREP_COLORS='mt=02;35' grep --color=always -P '^[^:]+:[^:]+:' \
| pv
| grep -P --color=always -- $term \
| less -RFX
...データが流れているのを見ることができますが、そうする場合:
csearch -n -- $term \
| env GREP_COLORS='mt=02;35' grep --color=always -P '^[^:]+:[^:]+:' \
| grep -P --color=always -- $term \
| pv
| less -RFX
...データフローはありません。 2番目はgrep
EOFを待っているようです。
両方のgrepを追加しても--line-buffered
私には役に立たないようです。
このコマンドパイプラインがEOFを待つのはなぜですか?
ベストアンサー1
を使用していますfish
。つまり、実際にはを使用していませんが、次のようgrep
になります。
function grep
command grep --color=auto $argv
end
grep
最初の項目ではすでにラップされていてenv
関数を無視するため、問題はありません。
変更grep
するには変更してください。/bin/grep