Вы можете использовать два grep
, сначала сопоставляя и возвращая все до первой последовательности десятичных цифр, затем сопоставляя и возвращая только цифры:
grep -Eo '^[^0-9]*[0-9]{1,}' file | grep -Eo '[0-9]{1,}'
{{1} } [ПРИМЕЧАНИЕ: я использую {1,}
, поскольку AFAIK {1}
является избыточным, и я предполагаю, что вы хотите сопоставить десятичные последовательности.]
Если вам разрешено использовать режим PCRE и ваш grep
поддерживает его, вы можете эффективно сделать то же самое в одном grep
, используя \ K
] утверждение просмотра назад переменной ширины:
grep -Po '^[^0-9]*\K[0-9]+' file
или (немного более компактно, используя стиль Perl \ d
для десятичной цифры):
grep -Po '^[^\d]*\K\d+' file
Или, поскольку вы не скажем, вам не разрешено использовать сам perl
, вы можете разбить его на поля, разделенные пробелами, а затем найти первое поле, состоящее из цифр:
perl -MList::Util=first -alne 'print first { /^\d+$/ } @F'
Честно говоря, я бы оставил / и / загрузился из LVM. Моментальные снимки и изменение размера хороши, но grub и lvm не всегда хорошо сочетаются (они, конечно, должны), но я помню ошибку в grub несколько лет назад, которая препятствовала загрузке с тома LVM, если был существующий снимок корневой файловой системы. Хотя это наверняка исправлено, на самом деле проблема заключается в том, что когда возникают проблемы, они почти полностью непрозрачны для вас и их трудно устранить. Я склоняюсь к простоте, поэтому предпочитаю использовать LVM для других томов. YMMV.