Есть ли способ сделать tail -F
или подать less
звуковой сигнал (позвонить в терминал), когда приходят новые данные (новая строка добавляется в файл). Или есть какая-либо другая утилита Unix, чтобы сделать это на Linux или Mac.
23
Идея состоит в том, чтобы передать вывод tail
через sed
и заменить символ новой строки колоколом / символом новой строки.
Но, вероятно, есть более простое решение, если вы используете tail
в X-Window . Там вы можете выполнить действие при изменении содержимого окна (мерцание, звонок, что угодно).
sed
идея блестящая, но я не знаю достаточно «sed», чтобы заставить ее работать, похоже, я не могу перехватить переводы строк в регулярном выражении обычным способом (к которому я привык), думаю, мне нужно сказать sed не интерпретируйте входящий поток построчно.sed -e $'s/$/\a/'
добавляет$'\a'
(символ колокола в синтаксисе ksh / bash / zsh) в конце каждой строки.sed
Регулярное выражение немного странно для моих наивных глаз.$'...'
синтаксис не универсален. Например, [t] csh не поддерживает это.если вы используете GNU
screen
, вы можете настроить его на «наблюдение» за окном с хвостом, и оно сообщит вам в строке состояния или по колоколу, определенному вашим termcap, о появлении нового вывода в этом окне.http://www.gnu.org/software/screen/manual/html%5Fnode/Monitor.html#Monitor
редактировать: просто нужно было добавить это, так как вы упомянули Mac OS X
просто для удовольствия, если вы искали что-то конкретное, вы можете использовать
say
команду Mac OS X, чтобы прочитать вам файл, который вы смотрите. просто получитеlogtail
команду от:http://www.hmug.org/pub/MacOS_X/BSD/Administration/Log/logcheck/
И использовать его в сценарии, как:
источник
screen
показывает и предупреждает (я думаю, что я могу сделать это также и звонок) ТОЛЬКО ОДИН РАЗ. Не для каждого нового события, которое происходит (не для каждой новой доступной строки)beep
команду вместоsay
.exec
команду экрана, чтобы сделать это. Пример на странице руководства - это то,!:sed -n s/.*Error.*/\007/p
что будет отправлять звонок каждый раз, когда в этом окне отображается «Ошибка».Вы можете использовать мультитейл . Это расширенный хвост, который поддерживает выполнение команд при сопоставлении регулярных выражений.
Например, следующая команда воспроизводит звук и открывает окно xmessage каждый раз, когда марсианский исходный пакет регистрируется.
источник
Просто для записи, как @Nils предложил, я использую,
sed
чтобы добавитьbell
к каждой строке.sed
Линии обеспечивается @Gillesработает на моем Mac (я включил «звуковой звонок» и «визуальный звонок» в моем терминале \ предпочтения \ расширенный).
источник
$'...'
escape-последовательности предназначены только для Bash.Для тех, кто находит эту страницу, я использую tcsh, и это работает:
Не спрашивайте меня, что означает синтаксис sed ...
источник
Вы можете попробовать,
konsole
который позволяет оповещение о новой активности (или молчание) в любой вкладке.источник
konsole
что это будет похоже наscreen
предупреждение один раз, в то время как мне нужно получать предупреждение для каждой новой строки.