2011-02-03 2 views
1
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]}}' 

hi, $ 2 - это текст в нижнем регистре. Я разделил его и хотел бы вывести [1] в верхнем регистре.awk split field format

Как это сделать?

Том

+0

Вы были в переполнении стека в течение пяти месяцев, задали шесть вопросов, никогда не принимали ответа, никогда не голосовали и никогда не отвечали на вопрос. См. Мой комментарий ниже –

+1

Позвольте мне приветствовать вас в StackOverflow и напомнить о трех вещах, которые мы обычно здесь делаем: 1) По мере получения помощи попробуйте также дать ** ответы на вопросы ** в своей области знаний 2) ['Прочитать FAQs'] (http://tinyurl.com/2vycnvr) 3) Когда вы видите хорошие вопросы и ответы, проголосуйте их ['используя серые треугольники'] (http://i.imgur.com/kygEP.png), так как доверие к системе основано на репутации, которую пользователи получают благодаря обмену своими знаниями. Также не забудьте принять ответ, который лучше решает вашу проблему, если таковая имеется, ['путем нажатия знака галочки'] (http://i.imgur.com/uqJeW.png) –

+1

Хорошее горе. Sorreeee. Уммммм ... Ты прав. Я слишком много принял как должное. Можно подумать, что я могу помочь кому-то, поэтому я, по крайней мере, подумаю об этом. Я могу голосовать, когда вижу хороший ответ (... но подождите, что у меня недостаточно репутации, чтобы сделать это!). Конечно, я могу голосовать за ответы на поставленные мной вопросы. Я согласен, минимум. Tom – Tom

ответ

3

вы можете использовать AWK-х toupper(a[1])

0

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

Спасибо, Деннис, ваши ответы - это мой первый вызов по-порту, когда я скрываюсь на этих форумах. – Tom

+0

В связи с прохождением интереса условие $ 1 = aa фактически терпит неудачу. Я предполагаю, что это из-за двусмысленности ввода. С другой стороны, $ 1 ~/^ aa /, похоже, функционирует так, как надеется. Том – Tom

Смежные вопросы