AWK基本命令2

判斷與循環

AWK中的IF語句

lu@lu-VirtualBox:~$ vi num.txt
lu@lu-VirtualBox:~$ cat num.txt
1987 2009
2008 1990
1999 2012
2010 1000

lu@lu-VirtualBox:~$ awk '{if ($1<$2) print $2 "too high"}' num.txt
2009too high
2012too high

lu@lu-VirtualBox:~$ cat awkif814.awk 
BEGIN{
    FS=":"
    #print " ai" $1
}
{
    #if($1>$2)
    print $1
}

lu@lu-VirtualBox:~$ awk -f awkif814.awk  num.txt 
1987:2009
2008:1990
1999:2012
2009
2010
2012

lu@lu-VirtualBox:~$ awk '{if($1>100) print $1 "bad"; else print "ok"}' num.txt 
1987:2009bad
2008:1990bad
1999:2012bad
ok
1987bad
2010bad
2008bad

BEGIN{
n=5
        i=n
        while(i>=1){
                j=n
                while(j>=i){
                        printf "a"
                        j--;
                }
                printf "\n"
                i--;
        }
}

lu@lu-VirtualBox:~$ awk -f whilet.awk
a
aa
aaa
aaaa
aaaaa

lu@lu-VirtualBox:~$ cat address.org.txt 
Jimmy the Weasel
100 Pleasant Drive
San Francisco, CA 12345

Big Tony
200 Incognito AVE.
Sururbia, WA 67890

Ollir zhang 
Nanjing University
Gulou, Nanjing, 210000

lu@lu-VirtualBox:~$ awk -f awkaddr.awk address.org.txt 
Jimmy the Weasel, 100 Pleasant Drive, San Francisco, CA 12345
Big Tony, 200 Incognito AVE., Sururbia, WA 67890
Ollir zhang , Nanjing University, Gulou, Nanjing, 210000


BEGIN{
        FS="\n"
        RS="\n\n"
        OFS="@"
        ORS=""
}
{

#       print $1 ", " $2 ", " $3
#       print NF,NR
        #print $1 ", " $2 ", " $3
        x=1
        while(x<NF){
                print $x "\t"
                x++
        }

        print $NF "\n"


}


lu@lu-VirtualBox:~$ awk -f awkaddr2.awk address.org.txt 
Jimmy the Weasel    100 Pleasant Drive    San Francisco, CA 12345
Big Tony    200 Incognito AVE.    Sururbia, WA 67890
Ollir zhang     Nanjing University    Gulou, Nanjing, 210000

FUNCTION實例
lu@lu-VirtualBox:~$ cat add.awk 
function add(x,y,sum)
{

    sum=x+y
    return sum

}

{

    m=2
    n=3
    x=add(m,n)
    printf("%d+%d=%d\n",m,n,x)
}

lu@lu-VirtualBox:~$ echo "" | awk -f add.awk 
2+3=5

function swap(x,y,temp)
{

        temp=x
        x=y
        y=temp
        sum=x+y

}

{

        m=2
        n=3
        swap(m,n)
        printf("%d,%d\n",m,n)
}


lu@lu-VirtualBox:~$ echo "" | awk -f swap.awk 
2,3

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章