Existe uma maneira de fazer a cauda -F beep?

23

Existe uma maneira de fazer com que tail -F ou less beep (toca a campainha em um terminal) quando novos dados chegam (uma nova linha é adicionada ao arquivo). Ou existe algum outro utilitário unix para fazer isso em um linux ou mac.

    
por Ali 23.11.2011 / 20:24

6 respostas

13

Uma ideia pode ser canalizar a saída de tail a sed e substituir a nova linha por bell / newline.

Mas provavelmente há uma solução mais fácil se você usar tail dentro de uma x-window . Lá o seu pode executar uma ação quando o conteúdo da janela muda (cintilação, campainha, o que for).

    
por 23.11.2011 / 20:36
13

se você usar o GNU screen , você pode configurá-lo para "vigiar" a janela com a cauda, e ele irá alertá-lo na sua barra de status, ou pela campainha definida pelo termcap, que há nova saída nessa janela .

link

edit: só tive que adicionar isso, já que você mencionou o mac os x

apenas por diversão, se você estava procurando por algo em particular, você pode usar o comando say do Mac OS X para ler o arquivo que está assistindo. é só pegar o comando logtail , de:

link

E use-o em um script como:

#!/bin/bash

file=$1
offset=$(basename "$1")

# while true... let this thing run until it's killed...
while true; do
    output=$(/usr/local/bin/logtail $file .${offset}.offset)
    if [ ! -z "$output" ]; then

        # print the output and say ding
        echo "$output" && say ding
        # to have the file read aloud to you, uncomment the following:
        say "$output"

        fi
    # recheck every 5 seconds
    sleep 5
done
    
por 23.11.2011 / 20:55
10

Você pode usar multitail . É uma cauda aprimorada que suporta a execução de comandos na correspondência de expressão regular.

Por exemplo o seguinte comando toca um som e abre uma janela xmessage cada vez que um pacote marciano é registrado.

multitail -ex "martian source" "play beep.wav; xmessage " -i /var/log/messages
    
por 23.11.2011 / 21:50
4

Apenas para registro, como @Nils sugeriu que estou usando sed para adicionar bell a cada linha.

A linha sed fornecida por @Gilles

sed -e $'s/$/\a/' 

funciona no meu mac (eu habilitei "bell audível" e "visual bell" no meu terminal \ preferences \ advanced).

    
por 24.11.2011 / 03:43
1

Para qualquer outra pessoa que encontrar esta página, estou usando o tcsh e isso parece funcionar:

tail -f changingfile | sed -e 's/.*/& \a/'

Não me pergunte o que significa a sintaxe do sed ...

    
por 14.06.2014 / 21:55
0

Você pode experimentar konsole , o que permite alertar sobre novas atividades (ou silêncio) em qualquer guia.

    
por 24.11.2011 / 03:28

Tags