Как с помощью параметра Grep второе слово в конфигурационном файле?

С помощью программы btrfstune , которая является частью более поздних версий обычных btrfs-tools, UUID автономной файловой системы может быть изменено. Если раздел, например. / dev / sda1 , используйте следующую команду для генерации нового случайного UUID:

btrfstune -u /dev/sda1

Чтобы указать, какое значение следует использовать, используйте верхний регистр -U , за которым следует (действительный) Строка UUID, например:

sudo btrfstune -U e0c5b943-1c02-44a2-bbaf-87ebda5e363b /dev/sdaX
0
29.06.2018, 16:16
1 ответ

Чтобы ответить на заданный вами вопрос, начните выражение поиска с шаблона, который пропускает одно поле:

module="$2"
/bin/grep "^[^|]*| *${module}\\>" test.properties

Чтобы сломать это:

^      Start of line
[^|]*  0 or more non-separator characters
|      A field separator
 *     0 or more spaces
${module}  Switch from single- to double-quotes to interpolate variable name
\\>    End of a word ("\\>" becomes '\>' when shell parses it)

Но лучше использовать что-то вроде awkилиperl:

awk -F' *\\| *' -v module="$module" '$2 == module' test.properties

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

0
28.01.2020, 04:19

Теги

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