awk 的呼叫方式
awk 提供了適應多種需要的不同解決方案,它們是:
一、awk 命令列,你可以象使用普通unix 命令一樣使用awk,在命令列中你也可以使用awk 程式語言,雖然awk 支援多行的錄入,但是錄入長長的命令列並保證其正
確無誤卻是一件令人頭疼的事,因此,這種方法一般只用於解決簡單的問題。當然,你也可以在shell script 程式中引用awk 命令列甚至awk 程式指令碼。
二、使用-f 選項呼叫awk 程式。awk 允許將一段awk 程式寫入乙個文字檔案,然後在awk 命令列中用-f 選項呼叫並執行這段程式。具體的方法我們將在後面的awk 語法中講
到。#!/bin/awk -f
並賦予這個文字檔案以執行的許可權。這樣做之後,你就可以在命令列中用類似於下面這樣的方式呼叫並執行這段awk 程式了。
$awk 指令碼文字名 處理檔案
舉乙個簡單的例子:
==[23]==gaoke@dev64_23:~/code$cat host
#ip hostname port
192.168.1.12 gaoke1 45
192.168.1.14 gaoke2 45
192.168.1.15 gaoke3 45
192.168.1.16 gaoke4 45
然後我要進行下邊的操作:
(1)獲得整個檔案的所有行:
==[23]==gaoke@dev64_23:~/code$awk '' host
#ip hostname port
192.168.1.12 gaoke1 45
192.168.1.14 gaoke2 45
192.168.1.15 gaoke3 45
192.168.1.16 gaoke4 45
或者==[23]==gaoke@dev64_23:~/code$awk -f " " '' host
#ip hostname port
192.168.1.12 gaoke1 45
192.168.1.14 gaoke2 45
192.168.1.15 gaoke3 45
192.168.1.16 gaoke4 45
(2)獲得整個檔案的第一列至第二列的內容
==[23]==gaoke@dev64_23:~/code$awk -f " " '' host
ip:#ip hostname:hostname
ip:192.168.1.12 hostname:gaoke1
ip:192.168.1.14 hostname:gaoke2
ip:192.168.1.15 hostname:gaoke3
ip:192.168.1.16 hostname:gaoke4
(3)再次修改host檔案:
==[23]==gaoke@dev64_23:~/code$cat host
192.168.1.12 :gaoke1 :45
192.168.1.14 :gaoke2 :45
192.168.1.15 :gaoke3 :45
192.168.1.16 :gaoke4 :45
(4)再次只獲得每行冒號後邊的獲得的資料
==[23]==gaoke@dev64_23:~/code$awk -f ":" '' host
192.168.1.12 gaoke1 45
192.168.1.14 gaoke2 45
192.168.1.15 gaoke3 45
192.168.1.16 gaoke4 45
==[23]==gaoke@dev64_23:~/code$cat ff.awk
#!/bin/awk -f
begin
==[23]==gaoke@dev64_23:~/code$awk -f ff.awk host
192.168.1.12 :gaoke1 :45
192.168.1.14 :gaoke2 :45
192.168.1.15 :gaoke3 :45
192.168.1.16 :gaoke4 :45
==[23]==gaoke@dev64_23:~/code$cat ff.awk
#!/bin/awk -f
begin
==[23]==gaoke@dev64_23:~/code$awk -f ff.awk host
ip:192.168.1.12 hostname:gaoke1 port:45
ip:192.168.1.14 hostname:gaoke2 port:45
ip:192.168.1.15 hostname:gaoke3 port:45
ip:192.168.1.16 hostname:gaoke4 port:45
awk精華 新編
1 awk簡介 1.1什麼是awk nawk gawk awk是一種用於處理資料和生成報告的unix程式語言。nawk是awk的新版本,gawk是基於linux的gnu版本。1.2 awk介紹 最初編寫於1977年,1985年得以改進以支援更大的程式,還增加了可使用者自定義函式 動態正規表示式 同時...
awk 呼叫變數
一 用awk 有以下幾種方法去呼叫變數 1.awk a 111 b 222 yourfile 注意 變數位置要在 file 名之前,否則就不能呼叫。還有 於 begin 中是不能呼叫這些的 variable.要用之後所講的第二種方法才可解決.2.awk v a 111 v b 222 yourfil...
awk呼叫shell命令
awk可以用getline或system來呼叫shell的命令 1 getline 通過在awk內使用管道,可以把shell命令的輸出傳送給awk awk begin sun mar 8 22 21 52 2009 順便說一下getline的其他用法.getline除了可以通過管道從shell命令裡...