Формат разделенного поля awk

awk '{split($2,a,"-")};
     {if ($1=="aa") {print "'$var'/"$1"/"a[1]"/"$2" '$var'/bb/"a[1]} 
      else {print "'$var'/"$1"/"a[1]"/"$2" '$var'/aa/"a[1]}}'

привет, $2 - это все строчные буквы Я разделил его и хотел бы вывести [1] в верхнем регистре.

Как я могу это сделать?

Том

2 ответа

Решение

Вы можете использовать awk's toupper(a[1])

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

awk -v "var=$var" 'BEGIN{OFS="/"}
  {split($2,a,"-"); a[1]=toupper(a[1])
  if ($1=="aa") {print var, $1, a[1], $2 " " var, "bb", a[1]} 
    else {print var, $1, a[1], $2 " " var, "aa", a[1]}}'
Другие вопросы по тегам