Czy istnieje sposób na wygenerowanie tail -F
lub less
wygenerowanie sygnału dźwiękowego (dzwonienie w terminalu), gdy pojawią się nowe dane (do pliku zostanie dodana nowa linia). Czy jest też jakieś inne narzędzie uniksowe, które może to zrobić na Linuxie lub Macu.
23
sed
pomysł jest genialny, ale nie wiem wystarczająco dużo „sed”, aby zadziałało, wygląda na to, że nie mogę przechwytywać nowych wierszy w wyrażeniu regularnym w zwykły sposób (do którego jestem przyzwyczajony). Chyba muszę powiedzieć sed nie interpretuj przychodzącego strumienia linia po linii.sed -e $'s/$/\a/'
dodaje$'\a'
(znak dzwonka w składni ksh / bash / zsh) na końcu każdej linii.sed
regexpt jest trochę dziwny dla moich naiwnych oczu.$'...'
składnia nie jest uniwersalna. Na przykład [t] csh nie obsługuje tego.jeśli korzystasz z GNU
screen
, możesz ustawić go tak, aby „obserwował” okno ogonem, a na pasku stanu lub za pomocą dzwonka zdefiniowanego przez termcap ostrzeże cię, że w tym oknie pojawi się nowe wyjście.http://www.gnu.org/software/screen/manual/html%5Fnode/Monitor.html#Monitor
edycja: po prostu musiałem to dodać, ponieważ wspomniałeś o Mac OS X
dla zabawy, jeśli szukasz czegoś konkretnego, możesz użyć polecenia Mac OS X,
say
aby odczytać oglądany plik. po prostu pobierzlogtail
polecenie z:http://www.hmug.org/pub/MacOS_X/BSD/Administration/Log/logcheck/
I użyj go w skrypcie, takim jak:
źródło
screen
pokazuje i ostrzega (myślę, że mogę sprawić, żeby zadzwonił również dzwonkiem) TYLKO RAZ. Nie dla każdego nowego wydarzenia, które się wydarzy (nie dla każdej nowej linii, która jest dostępna)beep
polecenia zamiastsay
.exec
zrobić za pomocą polecenia screen . Przykładem na stronie podręcznika jest to,!:sed -n s/.*Error.*/\007/p
że wyśle dzwonek za każdym razem, gdy w tym oknie jest wyświetlany komunikat „Błąd”.Możesz użyć multitaila . Jest to ulepszony ogon, który obsługuje wykonywanie poleceń w dopasowaniu wyrażeń regularnych.
Np. Następujące polecenie odtwarza dźwięk i otwiera okno xmessage przy każdym logowaniu pakietu źródłowego marsjańskiego .
źródło
Dla przypomnienia, jak sugeruje @Nils, że używam
sed
do dodaniabell
do każdej linii.sed
Linia dostarczone przez @Gillesdziała na moim komputerze Mac (w moim terminalu \ preferencje \ zaawansowane włączyłem „dźwiękowy dzwonek” i „wizualny dzwonek”).
źródło
$'...'
sekwencje specjalne to tylko Bash.Dla każdego, kto znajdzie tę stronę, używam tcsh i wygląda na to, że działa:
Nie pytaj mnie, co oznacza składnia sed ...
źródło
Możesz wypróbować
konsole
opcję, która pozwala ostrzegać o nowej aktywności (lub ciszy) w dowolnej zakładce.źródło
konsole
że to takscreen
, jakby raz to ostrzegało, a ja muszę otrzymywać ostrzeżenie dla każdej nowej linii.