Как объединить 4-е поле в 1 строку вместо 2

В этом примере простое добавление пробелов до и после «ax» должно помочь.

grep -irl " ax " *

Это то, что вы ищете?

0
27.03.2020, 05:31
1 ответ

Используя awkи предполагая, что первая строка show versionявляется пустой строкой (, делая ее тремя строками заголовка):

awk '
  NR<4{ print; next }        # print 3 header lines
  NF>1{                      # if number of fields > 1
    sub($4, $4 "%s" )        # append `%s` to 4th field
    fmtstr=$0                # save modified line in `fmtstr`
    next                     # continue with next line
  }
  { printf fmtstr "\n", $1 } # print `fmtstr` with first field as argument
' show_version.txt

Выход:

 Role        Pod         Node        Name                      Version
 ----------  ----------  ----------  ------------------------  --------------------
 controller  1           1           AB_CDE_FGH_IJ_ACI_APC-0001        3.2(4e)
 controller  2           2           AB_CDE_FGH_IJ_ACI_APC-0002        3.2(4e)
 controller  3           3           AB_CDE_FGH_IJ_ACI_APC-0003        3.2(4e)
 spine       1           111         AB_CDE_FGH_IJ_ACI_SPN_0111  n9000-13.2(4e)
 spine       1           112         AB_CDE_FGH_IJ_ACI_SPN_0112  n9000-13.2(4e)
 spine       1           113         AB_CDE_FGH_IJ_ACI_SPN_0113  n9000-13.2(4e)
 leaf        1           1101        AB_CDE_FGH_IJ_ACI_LEF_1101  n9000-13.2(4e)
 leaf        1           1102        AB_CDE_FGH_IJ_ACI_LEF_1102  n9000-13.2(4e)
 leaf        1           1103        AB_CDE_FGH_IJ_ACI_LEF_1103  n9000-13.2(4e)
3
19.03.2021, 02:32

Теги

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