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