awk用於格式化報文或者從檔案中抽取資料報.
1.$awk '' gefforey.txt | tee gefforey.doc
該命令將在螢幕輸出gefforey.txt檔案內容並將其內容複製到gefforey.doc檔案中.
2.$awk -f: '' gefforey.log
該命令以:為單位讀取gefforey.log檔案中第一列內容.
3.$awk 'begin ' gefforey.txt
該 命令將在螢幕首先輸出"name belt",第二行輸出"------------",並在輸出檔案內容的時候,每列之間間隔乙個tab位.可以在print語句之後加上end ,那麼將會在檔案內容輸出結束的時候列印"end of output".
該命令顯示gefforey.txt檔案中以空格分隔的第二列字串是"baidu"的所有行.
5.$awk '' gefforey.txt
該命令判斷如果某行第二列字串為"baidu",則列印出該行.
6.$awk '' gefforey.txt
該命令顯示判斷如果某行第二列值小於第三列值,則列印該行.awk的條件操作符有:
< 小於,> = 大於等於,< = 小於等於,~ 匹配正規表示式,= = 等於,!~ 不匹配正規表示式,!= 不等於
7.$awk '' gefforey.txt
該命令判斷如果某行第二列值為"google1"並且第三列值為"google2",則列印出該行.awk的邏輯表示式有:&& and,|| o r,! 非.
8.$awk ' end' gefforey.txt
該命令會輸出瀏覽記錄的域個數和已讀的記錄數,並在輸出結尾列印檔案名.awk內建的變數有:
a r g c 命令列引數個數
a r g v 命令列引數排列
e n v i r o n 支援佇列中系統環境變數的使用
filename a w k瀏覽的檔名
f n r 瀏覽檔案的記錄數
f s 設定輸入域分隔符,等價於命令列- f選項
n f 瀏覽記錄的域個數
n r 已讀的記錄數
o f s 輸出域分隔符
o r s 輸出記錄分隔符
r s 控制記錄分隔符
(附:1.n f的乙個強大功能是將變數$ p w d的返回值傳入a w k並顯示其目錄。這裡需要指定域分隔
符/.命令為:echo $pwd | awk -f/ '';
2.顯示檔名,命令為:echo "/usr/local/etc/rc.sybase" | awk -f/ ''.
9.$awk '' gefforey.txt
該命令將第一列的值賦給變數name,第三行的值賦給變數belt,並列印語句.awk允許在語句中進行賦值操作,賦值操作符有:=, +=, *=, / =, %=, ^ = .
10.$awk 'gsub(/111/,222) ' gefforey.txt
該命令將檔案中所有包含111的數字替換為222,awk的內建函式有:
g s u b ( r, s ) 在整個$ 0中用s替代r
g s u b ( r, s , t ) 在整個t中用s替代r
i n d e x ( s , t ) 返回s中字串t的第一位置
l e n g t h ( s ) 返回s長度
m a t c h ( s , r ) 測試s是否包含匹配r的字串
s p l i t ( s , a , f s ) 在f s上將s分成序列a
s p r i n t ( f m t , e x p ) 返回經f m t格式化後的e x p
s u b ( r, s ) 用$ 0中最左邊最長的子串代替s
s u b s t r ( s , p ) 返回字串s中從p開始的字尾部分
s u b s t r ( s , p , n ) 返回字串s中從p開始長度為n的字尾部分
g s u b函式有點類似於s e d查詢和替換。它允許替換乙個字串或字元為另乙個字串或字
符,並以正規表示式的形式執行。第乙個函式作用於記錄$ 0,第二個g s u b函式允許指定目標,
然而,如果未指定目標,預設為$ 0。
i n d e x(s,t)函式返回目標字串s中查詢字串t的首位置。l e n g t h函式返回字串s字元
長度。m a t c h函式測試字串s是否包含乙個正規表示式r定義的匹配。s p l i t使用域分隔符f s將
字串s劃分為指定序列a。s p r i n t函式類似於p r i n t f函式(以後涉及),返回基本輸出格式f m t的
結果字串e x p。s u b(r,s)函式將用s替代$ 0中最左邊最長的子串,該子串被( r)匹配。
s u b(s,p)返回字串s在位置p後的字尾。s u b s t r(s,p,n)同上,並指定子串長度為n。
11.$echo "65" | awk ''
該命令管道輸出65到awk,並觀察其ascii字元.awk的printf函式格式如下:
% c a s c i i字元
% d 整數
% e 浮點數,科學記數法
% f 浮點數,例如(1 2 3 . 4 4)
% g a w k決定使用哪種浮點數轉換e或者f
% o 八進位制數
% s 字串
% x 十六進製制數
awk命令也許是linux系統中最為複雜的命令,需要好好的練習!
Linux awk命令詳解
3.awk的執行過程 1 awk script的組成 awk script可以由一條或多條awk cmd組成,兩條awk cmd之間一般以newline分隔 awk cmd由兩部分組成 awk pattern awk script可以被分成多行書寫,必須確保整個awk script被單引號括起來。2...
linux awk命令詳解
awk 儘管操作可能會很複雜,但語法總是這樣,其中 pattern 表示 awk 在資料中查詢的內容,而 action 是在找到匹配內容時所執行的一系列命令。花括號 不需要在程式中始終出現,但它們用於根據特定的模式對一系列指令進行分組。pattern就是要表示的正規表示式,用斜槓括起來。awk 語言...
linux awk命令詳解
awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。awk有3個不同版本 awk nawk和gawk,未作特別說明,一般指gawk,gawk...