Next: 內定變數
Up: awk
Previous: script基礎
  Contents
awk裡面很重要的兩個定義
- record 就是一行一行的資料
- field 通常由space或者tab鍵隔開的資料欄就是field
請看例子,並注意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