Как бы найти переменную в строке и использовать вырезать, чтобы получить значение - PullRequest
0 голосов
/ 15 июня 2011

Проблема, по сути, заключается в следующем: мне нужно иметь возможность искать переменную в строке, которую я уже вычеркнул из / proc / cmdline. Затем можно вырезать значение этой переменной (в этом случае я хочу вырезать значение Disktype).

* Следует отметить, что это будет в среде загрузки PXE, поэтому большинство других языковых инструментов будут недоступны, а переменная и значение могут отличаться в зависимости от того, где они отображаются в /proc/cmdline.

.

Так что, по сути, если бы я перехватил / proc / cmdline, я мог бы получить это:

centos-workstation-x86_64/vmlinuz initrd=centos-workstation-x86_64/initrd.img locale=en_US Disktype=Fresh

или это

rhel6-workstation-x86_64/vmlinuz initrd=rhel6-workstation-x86_64/initrd.img Disktype=Large locale=en_US 

или любой другой вариант с еще большим количеством других переменных, настроенных для PXE.

* уточнение, это будет частью большого файла кикстарта

** Для тех, кто может задаться вопросом, почему это может быть полезно, с помощью этого я буду позже указывать в кикстарте оператор case, который соответствует тому, что было выброшено в Disktype, чтобы определить, какой файл section.cfg использовать во время процесса установки.

1 Ответ

0 голосов
/ 15 июня 2011

В awk это просто, если вы правильно установите th Разделитель записей и Разделитель полей :

awk  '/Disktype/{print $2}' RS=" " FS==

cut на самом деле не подходит для этой задачи:

tr " " "\n" | grep Disktype | cut -f 2 -d =

Вы также можете сделать это, используя sed:

sed -n 's/^.*Disktype=\([^ ]\+\)/\1/p'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...