Comando canalizado do acelerador no OSX?

0

Eu quero limitar a saída de grep para executar no máximo a cada X segundos. Especificamente, quero fazer algo assim:

ping 8.8.8.8 | grep "No route to host" | throttle 3s | xargs -I % sh -c 'reset wifi'
    
por zyklus 22.08.2018 / 09:03

1 resposta

1

Respondendo a minha própria pergunta, com base em esta questão , mas mudou ligeiramente para o OSX:

epoch () { date -v+$* "+%s" }

interval () {
    INTERVAL="$*"
    WHEN_TO_RUN=0
    while read LINE; do
        if (( $(epoch 0S) >= $WHEN_TO_RUN )) then
            echo $LINE
            WHEN_TO_RUN="$(epoch $INTERVAL)"
        fi
    done
}

que permite ... | interval 3S

    
por 23.08.2018 / 04:21