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

Судя по страницам ArchWiki на Syslinux, я предполагаю единственный способ, которым это возможно, к chainload другой Syslinux-загрузчик, как (непротестированный)

LABEL boot_hd2_2
MENU LABEL Boot second primary partition from thirth hard drive
COM32 chain.c32
APPEND hd2 2

Где hd2,2 также несет Syslinux bootcode, в обычном "ядре начальной загрузки отсюда" - стиль.

(Это довольно неуклюже, почему не просто используют Grub2?)

1
06.05.2013, 19:58
2 ответа

С резервированием относительно моего вопроса комментария это должно работать:

awk -v date=20121105 'NF == 0 {print; next;};
  NF==15 && $2 == "id" {readvar=$1; for (i=1;i<15;i++) $i = $(i+1); NF=14; };
  NF==14 { if (block<2) block++; 
    concatvars=$1; for (i=2;i<11;i++) concatvars=concatvars " " $i;
    print "date hhmm int",concatvars,date,readvar,sprintf("%02d", block),"05"; };
  NF==10 {readvar2=$7;
    print $1,"pset 1",$1,$2,$3,$4,$5,$6,date,readvar,sprintf("%02d", block);};
  NF==15 { 
    print readvar2,$1,"pset 2",$1,$2,$3,$4,$5,$6,date,sprintf("%02d", block),$7;
    nextline=$8; for (i=9;i<15;i++) nextline=nextline " " $i; };
  NF==1 {print nextline,$1}' inputfile
3
27.01.2020, 23:17

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

Я не уверен, как повторение должно быть сделано, на основе Вашего описания

awk -v date=20121105 '
    NF == 1 {time = $1; intv = intv%50 + 1; next}
    $1 == "id" {print "date", "hhmm", "int", $0; next}
    NF > 0 {$1 = date OFS time OFS sprintf("%02d", intv) OFS $1}
    1
' file

Если Вы хотите сделать вывод более симпатичным, передайте команду awk по каналу в column -t

2
27.01.2020, 23:17

Теги

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