Como dizer o último comando para ler STDIN?

1
SERVER:~ # zcat /var/log/wtmp-20130827.gz | last -f -
last: -: No such file or directory
SERVER:~ # 

Sem descompactar o arquivo wtmp, como posso ver a saída do mesmo com o último comando?

    
por gasko peter 27.08.2013 / 10:36

2 respostas

0

last não suporta a leitura de um pipe. Você pode usar /dev/stdin como um nome de arquivo, mas isso é inútil, já que só funciona se você estiver redirecionando de um arquivo em primeiro lugar.

Descompacte o arquivo em um arquivo temporário.

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

Zsh tem uma forma de substituição de processo =(…) , que coloca a saída de um comando em um arquivo temporário.

last -f =(zcat /var/log/wtmp-20130827.gz)
    
por 28.08.2013 / 03:30
0

De jeito nenhum.

last (1) não foi projetado para ler stdin. Ou var / log / wtmp ou -f xxx

Não suporta '-'

    
por 27.08.2013 / 10:47

Tags