Этот ужасный конвейер удовлетворит ваше требование (соединить части без -комментариев вместе, чтобы создать нечитаемый -вкладыш, если необходимо ).
Настройка
touch log{1..13}.txt log{15..20}.txt
Найти первое доступное размещение элемента
( find log*.txt | sort -V; echo X ) | # List the files and an extra one at the end
nl | # Add line-numbers
tr -dc '[:digit:][:space:]' | # Strip away non-numeric parts
sed -r '/ ([1-9][0-9]*)\t\1$/d' | # Delete lines with two matching numbers
awk '{print $1; exit}' # Print the the line number of the first remaining match
Выход
14
Если вы затем заполните отсутствующий слот
touch log14.txt
Выход
21
В качестве отступления для других читателей: если вы сможете найти способ улучшить конструкцию tr | sed | awk
, которая часто свидетельствует о плохо написанном конвейере, мне было бы интересно посмотреть, что вы предлагаете.
РЕДАКТИРОВАТЬ 2 :Наконец-то я сделал обходной путь более "чистым" :Я создал службу, которая выполняет dell-bios-fan-control 0
при запуске.
РЕДАКТИРОВАТЬ :Больше не работает или работает очень хаотично. мне еще нужно бежать /snap/dell-bios-fan-control/2/dell-bios-fan-control 0
и перезапустите i8kmod
, чтобы он заработал.
Кажется, я забыл добавить модуль dell-smm-hwmon
в /etc/modules
с файлом конфигурации /etc/modprobe.d/dell-smm-hwmon.conf
следующим образом:
options dell-smm-hwmon restricted=0
Теперь работает нормально, ничего не устанавливая.