回答:
less
マニュアルページを参照すると、less
INPUT PREPROCESSOR機能があります。
echo $LESSOPEN
このプリプロセッサの場所を表示するには、less
/ vim
/ cat
を使用してその内容を表示します。
私のマシンでは/usr/bin/lesspipe.sh
、このプリプロセッサはrpmの次のものを含んでいます。
*.rpm) rpm -qpivl --changelog -- "$1"; handle_exit_status $?
実際にはless
、ファイルをrpm
に開いて、出力のページネーションを表示します。
明らかに、この情報をgrepするには、rpmの出力を直接grepするだけです。
grep "foo" < <(rpm -qpivl --changelog -- bar.rpm)
または一般的に(OrangeDogに感謝)
grep "foo" < <(lesspipe.sh bar.rpm)
注: $LESSOPEN
の位置を保持するだけではありません-a lesspipe.sh
で始まりa |
で終わる%s
ため、直接呼び出すとエラーになります。
grep "foo" < <($LESSOPEN bar.rpm)
?または多分ちょうど$LESSOPEN bar.rpm | grep "foo"
。