Awk: обход заголовка без написания кода

Еще в 5.x RHEL по умолчанию использовал LVM. Прежде чем вы сможете монтировать тома LVM, вам нужно будет сделать несколько шагов.

Если вы использовали то же имя VG на новом диске, что и на старом, у вас есть небольшая проблема :у вас есть две VG с одинаковым именем. Чтобы однозначно идентифицировать VG, которыми вы хотите управлять (, то есть ту, что на /dev/sdb), вам понадобятся UUID VG. Беги:

# pvs -o +vg_uuid

, чтобы вывести список всех обнаруженных PV LVM, включая их VG UUID. Вы также увидите имя VG каждого раздела, чтобы увидеть, есть ли конфликты имен.

LVM в общем и целом достаточно умен, чтобы не испортить активную конфигурацию VG, если только вы не изо всех сил пытаетесь ее запутать. Поэтому, если вышеупомянутая -упомянутая команда pvsничего не покажет на /dev/sdb, запустите vgscanи повторите попытку.

Зная UUID VG, вы можете использовать команду vgrename для переименования любых конфликтующих VG. Если нет конфликтов имен,вы можете перейти к vgchange.

(Чтобы смонтировать LV (s )внутри VG, вам необходимо активировать VG, а VG не активируется, если его имя конфликтует с уже существующим VG.)

Команда для переименования ВГ выглядит следующим образом:

vgrename Zvlifi-Ep3t-e0Ng-U42h-o0ye-KHu1-nl7Ns4 new_name_for_vg

, где алфавитный суп Zvlifi-...— это UUID VG, а другой параметр — просто новое имя для этой VG.

После того, как конфликты имен виртуальных групп разрешены (или если конфликтов вообще нет ), вам необходимо активировать виртуальные группы (с )на /dev/sdb. Вы можете просто активировать все не активированные -VG, которые LVM видит с помощью этой команды:

vgchange -ay

При активации виртуальной группы имена устройств (ссылки )любых LV внутри нее будут отображаться как /dev/mapper/<VG name>-<LV name>. (Также как /dev/<VG name>/<LV name>из соображений совместимости с предыдущими версиями.)

Теперь вы можете установить их как обычно.

0
10.02.2020, 17:38
1 ответ

Я предполагаю, что вы по-прежнему хотите выполнять операции обработки текста -с помощью awkв этом CSV-файле. Если да, то я бы рекомендовал добавить к нему условие на "номер строки", как в:

awk -F',' 'NR==1{print} NR>1{ your code here }' foo.csv

Здесь NR— это встроенная переменная awkдля «номера записи», которая обычно по умолчанию равна номеру строки(обратите внимание, что при обработке нескольких файлов это «общее количество обработанных строк», номер строки -для -файла -равенFNR). Вы также можете легко не печатать заголовок, опустив часть NR==1{...}.

Если в конце концов вы все равно будете использовать printв своих манипуляциях, вы можете "проиграть" это до

awk -F',' 'NR>1{ your code here }1' foo.csv

1означает «печатать результирующую строку ($0)».

Также:

  • вам не нужно catфайл для передачи его в awk, просто укажите его как команду -строковый аргумент
  • неинициализированные переменные по умолчанию равны "0", поэтому вам не нужен оператор start=0в разделе BEGIN
5
28.04.2021, 23:23

Теги

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