Как правильно прочитать мой файл?

Вы могли бы написать что-нибудь вокруг

#!/bin/bash
inotifywait -e modify /sys/devices/virtual/tty/tty0/active
case "$(cat /sys/devices/virtual/tty/tty0/active)" in
    tty7) <dothis> ;;
    tty8) <dothat> ;;
esac
exec $0 $*

«Файл» /sys/devices/virtual/tty/tty0/activeсообщает, какая виртуальная консоль является активной, с точки зрения tty7или tty1и т. д., и он изменяется при переходе от одной к другой. Команда inotifywaitпросто ждет, пока не появится событие modifyдля этого имени пути, поэтому сценарий может затем проверить, какое из них предназначено для выполнения связанной с ним задачи. После этого (строка exec)сценарий повторно вызывает себя для захвата следующего перехода виртуальной консоли.

В Linux на основе Debian вы найдете inotifywaitкак часть пакета inotify-tools. Путь /sys/..требует должным образом смонтированного sysfs,который обычно принадлежит ядру Linux с давних времен.

0
24.03.2021, 20:24
1 ответ

Переменная Разделитель полей ввода по умолчанию использует все виды пробелов. Вы хотите, чтобы он явно установил его на вкладку. На справочной странице awk написано:

  -F sepstring
             Define the input field separator. This option shall be
             equivalent to:

                 -v FS=sepstring

И далее вниз:

  FS        Input field  separator  regular expression; a <space> by default.

Итак, чтобы установить ФС на вкладку:

$ awk -F'\t' '{print $7}' file.txt
1
28.04.2021, 22:57

Теги

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