2011-02-03 63 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]}}' 

嗨, $ 2是全部小写文本。我已经拆分了它,并希望以大写形式输出[1]。awk分割字段格式

我该怎么做?

汤姆

+0

你一直在堆栈溢出五个月,问了六个问题,从未接受过答案,从未投过票,也从未回答过问题。看到我的评论波纹管 – 2011-02-03 11:39:15

+1

请允许我欢迎您来到StackOverflow,并提醒我们通常在这里做的三件事:1)当您得到帮助时,尝试给予它**在您的专业领域回答问题** 2)[`阅读常见问题解答](http://tinyurl.com/2vycnvr)3)当您看到好的问答时,请将它们投票[`使用灰色三角形](http://i.imgur.com/kygEP.png)“该系统的可信度基于用户通过分享知识获得的声誉。同时请记住接受更好地解决您的问题的答案,如果有的话['通过按复选标记'](http://i.imgur.com/uqJeW.png) – 2011-02-03 11:39:39

回答

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]}}'