The GNU Awk User's Guide
http://clipthat.blogspot.com/2010/01/awk-script.html
AWK:印出某一列的第幾欄
AWK printf 格式
printf [format[, expression(s)]]
格式化輸出。輸出格式由 format 參數決定。輸出的參數個數必須符合 format 所需的個數。
format 的使用法和 C 語言中的 printf 一樣。下列為常見的格式:
%s 字串。
%d 十進位數字。
%n.mf 浮點數,n 為總共的位數,m 為小數點後的位數。
%[-]nc 為 c 這種格式指定最小欄位寬度。加上 - 則向左對齊,不加則向右對齊。
format 也可以含有 escape 字元。常用的有 \n(換行字元) 和 \t(tab)
若加上引用符號,則可以在 args 中加入字串或是空白字元。若要印出多個變數或是欄位,則必須用多個格式 format。
範例1:
使用下列 script:
{printf ("The sum on line %s is %d \n", NR, $1+$2)}
下面是輸入:
5 5
輸出如下,加上換行
The sum on line 1 is 10.
範例2:
11:07:39am /home/data/mrtg> df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 3583238 2299532 997048 70% /
devfs 1 1 0 100% /dev
/dev/ad1s1d 4074646 3648948 99728 97% /vv
11:07:40am /home/data/mrtg> df | grep vv | awk '{printf("%s",$5)}'
97%
awk '/112.104.14.182/ /66.91.158.26/' < ipfw.log
找出ip為112.104.14.182&66.91.158.26的行
awk '{print $2,$NF;}'
印出第二和最後一欄位
awk