Как правильно настроить привязку монтирования при запуске в мире systemd?

Использование awk в исходном входном файле перед очисткой :

awk '/account number [[:digit:]]+/ { match($0, "account number ([[:digit:]]+)", a); print NR ";" substr($0, a[1, "start"], a[1, "length"]); }' input

Это извлекает номер счета и печатает номер строки в начале строки:

1;2345356432
3;8623525534

Если вы хотите извлечь предварительно обработанный номер вместо этого из очищенного файла:

awk '/account number [[:digit:]]+/ { match($0, "account number ([[:digit:]]+)", a); print $1 ";" substr($0, a[1, "start"], a[1, "length"]); }' input

Немного разделив его :

  • / номер счета [[: digit:]] + / гарантирует, что мы обрабатываем только строки, соответствующие "номеру счета", за которым следует число;
  • match ($ 0, "номер счета ([[: digit: ]] +) ", a) снова ищет шаблон и сохраняет позиции и длины совпадающих групп ( ([[: digit:]] +) , число) в массиве a ;
  • печать NR ";" substr ($ 0, a [1, "start"], a [1, "length"]) печатает номер записи ( т.е. номер строки; используйте FNR , если вы хотите обработать несколько файлов), за которым следует ; , за которым следует подстрока, соответствующая первой группе: a [1, "start"] дает начальный индекс, a [1, «длина»] его длина (заполнено соответствием ).

Все это предполагает, что в каждой строке находится не более одного номера счета.

Второй вариант печатает $ 1 вместо NR , т.е. первое поле в файле, которое представляет собой предварительно обработанный номер строки.

5
16.07.2015, 00:06
1 ответ

Решение Арно сработало, но в нем есть небольшая ошибка. Связывание монтирования в fstab должно быть таким (он поменял местами "bind" и "none" ). См. руководство по fstab.

# /etc/fstab
/home/var /var none x-systemd.requires=/home,x-systemd.automount,bind 0 0

Ссылка на монтирование systemd находится здесь:https://www.freedesktop.org/software/systemd/man/systemd.mount.html

6
27.01.2020, 20:36

Теги

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