Откройте текстовый файл в терминале и автообновите его каждый раз, когда он изменяется

Вы, кажется, вложили ' в mutt команда:

'События от date +%Y-%m-%d --date='last Wednesday'-date +%Y-%m-%d'

Попытайтесь использовать " вместо внутреннего ' так, чтобы оператор читал

'События от date +%Y-%m-%d --date="last Wednesday"-date +%Y-%m-%d'

14
15.11.2013, 15:18
4 ответа

Это должно показать Вам файл однажды в секунду:

watch -n 1 cat file
24
27.01.2020, 19:50
  • 1
    Это - то, что я ищу.Спасибо! Я расширил его далее с помощью watch -tpcn 1 pygmentize -g filename –  Kit 15.11.2013, 16:41
  • 2
    @Kit, осторожный с watch -g, это не работает, как Вы ожидали бы. –  terdon♦ 15.11.2013, 16:44
  • 3
    @terdon, -g переключатель на самом деле для pygmentize. Так или иначе, спасибо за предупреждение. –  Kit 15.11.2013, 17:08
  • 4
    Если содержание файла составляет более чем одну страницу, с помощью этого, Вы не можете прокрутить экран для проверки остальной части содержания файла. –  CodyChan 18.01.2018, 04:56

Я использовал бы watch как другой ответ предполагает, но только показать Вам, как можно приблизиться к на вид сложной проблеме с помощью стандартных блоков, обеспеченных оболочкой, таких как Unix; некоторое время цикл может быть простым способом выполнить Ваше цикличное выполнение.

$ while [ 1 ]; do clear; date; cat <afile>; sleep 1 ;done

Пример

$ while [ 1 ]; do clear; date; cat sample.txt; sleep 1 ;done
Fri Nov 15 09:17:39 EST 2013
1
2
3
4
5

Экран очищается и затем после секунды, это отображено:

Fri Nov 15 09:17:40 EST 2013
1
2
3
4
5
3
27.01.2020, 19:50

Как предложено в комментариях, Вы могли также использовать inotify хотя это - излишество. Безусловно самое простое должно использовать watch. Вот один способ сделать это с inotify:

  1. Установите inotify-tools пакет

    sudo apt-get install inotify-tools
    
  2. Использовать inotifywatch проверять Ваш файл на изменения. Выполните его в цикле и cat файл, если изменение обнаруживается (вот почему я grep для строки total):

    while true; do 
      inotifywatch -e modify -t 1 kk 2>/dev/null | grep -q total && 
      echo "$(date;cat kk)"; 
    done
    
2
27.01.2020, 19:50
  • 1
    Передача -q (или --quiet) к grep заставит подобранную строку замолчать с "общим количеством". положительная сторона –  FichteFoll 25.02.2018, 20:01
  • 2
    @FichteFoll (игнорируйте мой предыдущий комментарий, если Вы видели его, прежде чем я удалил, я был медленным). Спасибо, отредактированное. –  terdon♦ 25.02.2018, 20:06

watch(1) — действительно полезный инструмент. [1]

Однако я бы не рекомендовал использовать cat.

Вместо этого используйте head или tail, если вам нужно увидеть начало или конец файла.

0
27.01.2020, 19:50

Теги

Похожие вопросы