формат разделенного поля awk - PullRequest
       24

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

1 голос
/ 03 февраля 2011
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] в верхнем регистре.

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

Tom

Ответы [ 2 ]

3 голосов
/ 03 февраля 2011

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

0 голосов
/ 03 февраля 2011

Вы можете избежать сложного и трудно читаемого цитирования, если используете передачу переменных 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]}}'
...