Почему ИБП, подключенный через USB, не отображается как /dev/ttyUSB0?

Если я правильно интерпретирую, вы, вероятно, сможете сделать то, что пытаетесь сделать, просто awkиsort-без необходимости в цикле или синтаксический анализ ls(тонкий намек:НЕ ДЕЛАЙТЕ ЭТОГО! ), или head, или sed.

awk 'FNR > 1 {print FILENAME, $0}' *.txt | sort -k10 -g | sort -u -k1,1

Это пропускает первую строку каждого файла, затем печатает все оставшиеся строки с префиксом имени файла и пробелом. (Разделитель выходных записей awk по умолчанию илиORS). Затем он передает его через сортировку, чтобы выполнить общую числовую сортировку по полю 10. Наконец, он выполняет уникальную сортировку только первого поля (-k1,1, имени файла ), так что выводится только первая строка с этим именем файла.

Обратите внимание, что здесь мы должны сортировать по полю 10, а не по полю 9, потому что мы добавили имя файла в качестве первого поля, поэтому номера всех остальных полей увеличиваются на 1.

FNRи FILENAMEпостроены -в переменных awk. FNR — это номер строки («номер входной записи» в awk -жаргоне )текущего файла, а FILENAME — это имя текущего файла.


вот еще один способ сделать это, на этот раз используя толькоawk:

#!/usr/bin/awk -f

FNR > 1 && (! s[FILENAME] || $9 < s[FILENAME]) {
  s[FILENAME]=$9;
  l[FILENAME]=$0
};

END {
  for (f in s) {
    print f, l[f]
  }
}

сохранить как, например. smallest-pvalue.awk, сделайте его исполняемым с помощью chmod +x smallest-pvalue.awkи запустите как ./smallest-pvalue.awk *.txt.

Этот awk-скрипт отслеживает наименьшее значение поля 9 каждого входного файла в массиве с именем s, а также сохраняет соответствующую входную строку в массиве l.

После обработки всех файлов он выводит имя файла и строку, содержащую наименьшее 9-е поле для каждого файла.

1
30.07.2020, 17:34
1 ответ

Legrand не использует ttyUSB, в настройках upssrvвыберите «USB».

Я использую UPS Communicator 1.32, но он имеет ошибку для версии Linux и не может правильно инициализировать подключение к ИБП.

Решение:

  • Остановить upssrv в Debian
  • Запустить виртуальную машину с Windows
  • Перенаправить порт USB на виртуальную машину
  • Установите UPS Communicator для Windows, запустите его и подключитесь к ИБП

Теперь вы можете остановить виртуальную машину и запустить upssrvна Debian -все будет работать нормально, пока вы не отключите USB-кабель или не перезагрузите компьютер.

0
18.03.2021, 23:18

Теги

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