преобразовать таблицу в файл ini с использованием массивов bash

Для материнских плат, выпущенных до 2002 года, их BIOS не будут видеть и загружаться с компакт-диска. Между 2002 и 2005 годами BIOS может, по крайней мере, видеть компакт-диск. Если у вас более новая версия mobo, вы можете получить загрузку с компакт-диска с помощью GRUB. Самый простой способ - поместить GRUB4DOS на системный диск DOS и отредактировать файл MENU.LST для создания меню. Если у вас есть старый mobo, как у меня, вам нужно будет загрузить Linux с дискеты, чтобы получить доступ к компакт-диску. Некоторые из вариантов: TOMSRTBT (устаревший, но может поместиться на негабаритный диск (1,7 МБ) или Basic Linux (2 дискеты). Лучшее решение, требующее работы, - это создать собственное ядро ​​и initrd из недавний выпуск дистрибутива, в котором есть только то, что вам нужно. Вы можете получить их достаточно маленькими, чтобы поместиться на стандартную дискету.

5
13.01.2016, 16:18
2 ответа

Один из способов использования awk:

$ sed 's/ //g' file | awk -F"|" '{x="["$2"."$3"]";}!(x in a){print x;a[x];}{print $1}'
2
27.01.2020, 20:32

Магия Perl:

$ perl -lne '@F=split(/\s*\|\s*/); push @{$k{"$F[1].$F[2]"}},$F[0]; 
     END{foreach (keys(%k)){print "[$_]"; print join "\n",@{$k{$_}}} }' file
[abc.environment1]
hostname1.env1.domain
hostname2.env1.domain
[def.environment1]
hostname5.env1.domain
[abc.environment2]
hostname3.env2.domain
hostname4.env2.domain
[def.environment2]
hostname6.env2.domain
2
27.01.2020, 20:32

Теги

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