next up previous contents
Next: 內定變數 Up: awk Previous: script基礎   Contents

變數與欄位處理

awk裡面很重要的兩個定義 請看例子,並注意shell command line的單引號雙引號
    $ cat /etc/mnttab
    /proc   /proc   proc    dev=31c0000     1022606134
    fd      /dev/fd fd      rw,suid,dev=32c0000     1022606198
    mnttab  /etc/mnttab     mntfs   dev=3380000     1022606209
    swap    /var/run        tmpfs   dev=1   1022606209
    swap    /tmp    tmpfs   dev=2   1022606211

    $ awk '/swap/{print $2}' /etc/mnttab
    /var/run
    /tmp

    $ awk '{print "Hello World"}' /etc/mnttab
    Hello World
    Hello World
    Hello World
    Hello World
    Hello World

    一二欄位中間是tab二三欄位中間是空白
    $ cat datafile
    99		98 3.5
    300		298 4.9
    498		493 5.9
    699		698 7.6
    900		748 9.0
    1200	703 9.6
    1500	651 10.4
    1698	627 10.8

    記住  這樣是從input兩個欄位輸出output一個欄位
    $ awk '{print $1 $2}' datafile
    9998
    300298
    498493
    699698
    900748
    1200703
    1500651
    1698627

    這樣是從input兩個欄位輸出output兩個欄位
    用print輸出欄位由逗號 , 分開
    $ awk '{print $1,$2}' datafile
    99 98
    300 298
    498 493
    699 698
    900 748
    1200 703
    1500 651
    1698 627

    這樣是從input兩個欄位輸出output一個欄位
    $ awk '{print $1 "," $2}' datafile
    99,98
    300,298
    498,493
    699,698
    900,748
    1200,703
    1500,651
    1698,627

    也就是說print $1$2 等於print $1 $2


Subsections

Cyril Huang 2002-06-14