Я бы, наверное, использовал sed
для этого:
sed -n '/^branch/{ s/[^.]*\.//; s/\.[^=]*=/ /p; }'
Это ловит любую строку, начинающуюся со строки branch
, и для каждой из этих строк
=
включительно пробелом. Затем печатается измененная строка. Любая другая строка отбрасывается.
Сawk
:
awk -F '=' '/^branch/ { split($1, a, "."); print a[2], $2 }'
Это обрабатывает ввод как ограниченный =
, а затем разбивает первую часть на точки. Затем он печатает вторую строку, разделенную точкой -, и бит после =
.
Это приведет к ошибке, если строка содержит более одного=
(бита после второго =
, который будет потерян ).
Кажется, я нашел решение. Как я упоминал ветки ранее, я обнаружил, что это самый простой способ добиться того, чего я хочу.
Итак, что я сделал за несколько простых шагов:
При таком подходе у каждого узла есть своя ветвь.
Надеюсь, это кому-нибудь поможет.