STDINから読み取るように「最後の」コマンドにどのように指示しますか?

STDINから読み取るように「最後の」コマンドにどのように指示しますか?
SERVER:~ # zcat /var/log/wtmp-20130827.gz | last -f -
last: -: No such file or directory
SERVER:~ # 

wtmpファイルを解凍せずにifの出力を表示するには、最後のコマンドをどのように使用しますか?

ベストアンサー1

lastパイプからの読み取りはサポートされていません。ファイル名として使用できますが、/dev/stdin最初にファイルからリダイレクトする場合にのみ機能するため、少し役に立ちません。

一時ファイルにファイルを解凍します。

wtmp=$(mktemp)
zcat /var/log/wtmp-20130827.gz >|"$wtmp"
last -f "$wtmp"
rm -f "$wtmp"

=(…)Zshには、コマンド出力を一時ファイルに保存するプロセス代替形式があります。

last -f =(zcat /var/log/wtmp-20130827.gz)

おすすめ記事