AWK Как взять значение из заголовка и распечатать его в столбцах?

Вместо dd я создал новый том. Больше шагов, но они могут исправить проблемы, а не копировать их. У меня был слишком маленький /boot, который был поврежден. Я также использовал cento7 с grub2. Поэтому мои инструкции потребуют некоторых корректировок или обновления до grub2, как предложил psusi. Я попытался отметить изменения.

ПРИМЕЧАНИЕ. :Когда я использую «/dev/sdx», я предполагаю, что вы знаете, что «sdx» нужно изменить на любое имя диска/тома, которое вы хотите использовать как /boot.

  • Используйте fdisk (, а не cfdisk )для раздела с типом 83 (normal linux part )и пометьте его как загрузочный.
    • Причина для fdisk :cfdisk запускает раздел слишком рано, не имея места для загрузчика. Помните, что загрузчик должен располагаться перед разделом.
  • Создать файловую систему на разделе. Внешн.[234], xfs. другие?.
  • Смонтировать в /boot
  • Скопируйте *файлы.img из старого /boot в /boot… по крайней мере те, которые вы хотите сохранить.
  • Я также скопировал файлы vmlinuz -*из старого /boot в /boot… не уверен, что это нужно.
  • Запустите grub2 -установите /dev/sdx
    • Примечание 1 :Если вы используете grub (, а не grub2 ), я считаю, что правильной командой является grub -install /dev/sdx
    • Примечание 2 :Он устанавливается перед разделом, который мы только что отформатировали, поэтому НЕ указывать его на /dev/sdx1!
  • Запустите grub2 -mkconfig -или /boot/grub2/grub.cfg
  • Не забудьте обновить /etc/fstab для /boot

ссылки :http://www.ocztechnologyforum.com/fo...226#post373226http://www.patriotmemory.com/forums/...ead.php?t=3696http://thunk.org/tytso/blog/2009/02/...se-block-size/https://ubuntuforums.org/showthread.php?t=1528529https://wiki.centos.org/HowTos/Grub2

-1
14.02.2020, 20:28
3 ответа

Вот возможный простой способ, основанный на предположении, что заголовки точно такие, как вы указали, а данные начинаются с строки 8

  1. Соответствие интересующим строкам заголовков с сохранением их значений
  2. Начиная с первой строки данных, добавляйте значения к выходным данным с хорошим форматированием

    awk -F" :" '/^X _COR/ { x=$2 } ; /^Y _COR/ { y=$2 } ; /^DATUM/ { d=$2 } ;NR>7 { print sprintf ("% -20s % -10d % -10d % -10d", $0,x,y,d )}' Ваш входной файл

Вы можете изменить номер строки и форматирование, если они отличаются от вашего примера

0
28.04.2021, 23:23

Использование прямой копии поста OP и использование только одного набора заголовков для каждого файла

awk -F":" '$2+0{a=a"\t"$2}$1~/[^0-9. ]+$/{print $0a}' file1

0        0       258524  225898  874
1        7       258524  225898  874
2        16      258524  225898  874
3        20      258524  225898  874

Перерыв на:

если $2является числовым, $2+0истинным, то это x, y или z, поэтому составьте его в строку по мере продвижения

В противном случае, если $1содержит числа $1~/^[0-9. ]+$/, это данные, поэтому выведите их вместе с составной строкой

0
28.04.2021, 23:23
$ awk 'NR>1 && NR<5{h=h OFS $NF} NR>7{print $0 h}' file
0        0 258524 225898 874
1        7 258524 225898 874
2        16 258524 225898 874
3        20 258524 225898 874

или, может быть, это больше похоже на то, что вы хотите сделать, например. если заголовки могут быть в разном порядке ввода, но вы хотите установить определенный порядок вывода:

$ awk '/:/{f[$1]=$NF} NR>7{print $0, f["X_COR"], f["Y_COR"], f["DATUM"]}' file
0        0 258524 225898 874
1        7 258524 225898 874
2        16 258524 225898 874
3        20 258524 225898 874
0
28.04.2021, 23:23

Теги

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