2008年9月7日 星期日

linux-指令-awk

awk是可以用來分析文件的工具~本來我以為是一個小工具~
經過這一次之後,我才發現awk可以做的事情實在是太多了~可以由我上一篇寫的文章(svn update script)內的程式碼就知道了~

基本上呢,鳥哥寫的很清楚了,可以先看一下這裡~

那我在這裡寫的就是我有用到,但是,鳥哥沒有寫的~

如何把shell的變數傳給awk,這裡要注意的是,傳送去的變數,在使用的時候,不需要加$

[root@host ~]# awk -v var=$shell_var '條件類型1{動作1} 條件類型2{動作2} ...'file


如何在awk中,使用shell的指令,把command的output傳給awk下的var變數,而我的輸入部分就是透過command來完成的,可以參考我的上一篇的程式碼

command | getline var


另外,在awk的{動作1},其實可以放很大的程式碼,可以參考我上一篇文章的程式或是man awk

還有另一個很好用的指令system("指令")。就是可以在awk中,要求執行一個shell中的指令
例:

awk -F: '/正規表示法/
{
  cmd="命令字串";
  print cmd;
  system(cmd)
}' file


參考資料:
好用的 awk 命令
AWK 中如何利用系統資源
AWK Tutorial Guide(英文)
臥龍小三 Shell 設計入門 8.正規表示式 awk
study-area Scripts大集合: awk
通用線程:Awk 實例,第一部份(簡體中文)
通用線程:Awk 實例,第二部份(簡體中文)
通用線程:Awk 實例,第三部份(簡體中文)

沒有留言: