Что делать, если у вас не было полей со значением или оно было не только во втором столбце? тогда вам понадобится.
awk -F'#' '{for(i=1; i<=NF; i++) if ($i != "") {print $i; break} }' infile
Приведенный ниже образец:
abc#asd=123 nrt# #clsdX #### ###here acn#123
выдаст результат:
abc
nrt
clsdX
here
acn
Или с помощью sed
иcut
:
cut -d'#' -f1 <(sed 's/^#\+//; /^$/d' infile )
s/^#\+//
удаляет начальные хэши#
(встречались один -или -раз)/^$/d
удаляет созданную пустую строку после того, как выше была строка, состоящая из хэшей #####
, или удаляет пустые строки в файле, если они были. cut -d'#' -f1
печатает первое поле -f1
, когда поля разделены хешем-d'#'
или только sed
:
sed 's/^#\+//; /^$/d; s/^\([^#]*\)#.*/\1/' infile
s/^\([^#]*\)#.*/\1/
захватывает группу начала совпадения от начала строки для чего-либо до первого увиденного хэша и просто печатает его в результате и игнорирует остальное. Даже для современных систем флэш-ПЗУ BIOS поддерживают лишь ограниченное количество перезаписей, поэтому, если вы постоянно переключаете ОС, вы можете убить ПЗУ BIOS. GRUB хранит свою конфигурацию на диске, поэтому его безопасно использовать.