awk命令,可以通過鍵入指令碼名稱來呼叫
首行為:#!/bin/awk
這樣就可以編寫awk的指令碼
-f 網域名稱分隔符, 預設為空格(常用)
awk -f : 'print $1' file_name
* $0 是一整行 *
$1 位域分隔符的後的第乙個域,以此類推
簡單的呼叫方式:
注意$1變數不要被引號包裹
begin{}表示在未開始匹配前要執行的動作,end{}表示匹配結束時要執行的動作
awk -f : 'beginend'
printf的使用,基本上類似於c中的printf函式
awk -f: 'printf("%s, %s", $1,$2)'
如果說乙個文字工具不去支援正則 那麼他就不是乙個好的文字工具
『/^123$/』,符合這個匹配的會執行相應的action
who | awk -f: '/root/'
argc 命令列引數個數
argv 命令列引數排列
environ 支援佇列中系統環境變數的使用
filename awk瀏覽的檔名
fnr 瀏覽檔案的記錄數
fs 設定輸入域分隔符,等價於命令列 -f選項
nf 瀏覽記錄的域的個數
nr 已讀的記錄數
ofs 輸出域分隔符
ors 輸出記錄分隔符
rs 控制記錄分隔符
定義乙個區域性變數
awk begin end file_name
無論是for迴圈還是if語句等風格都與c語言中的風格很相似
awk begin file_name
awk -f: begin}}
直接上示例
awk -f : begin}end{}
我們可以自定義函式
awk 'function test_func( a)
...'
當然系統也方便的提供了函式的
這裡簡單的介紹一些:
tolower()
touooer()
strtonum() 字串轉數字
index(str,sub_str)查詢子串位置 返回位置
length()求陣列或字串的長度
asort()排序陣列
asorti()排序陣列的索引值
gsub(regular_expression,subtring)查詢替換到的子串
substr(『123123123』, 2, 6);和普通的求子串函式沒什麼區別
後續再補充
awk文字分析工具
usage awk option program file awk option f progfile file optin f fs 指定輸入分隔符,fs可是字串或者正規表示式 v var value 賦值給var,將外部變數傳給awk f script 從外部指令碼讀取awk命令 awk beg...
文字分析awk
awk awk是乙個強大的文字分析工具。相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,空格,製表符 為預設分隔符將每行切片,切開的部分再進行各種分析處理。awk f 支援自定義分隔符 支援正規表示式匹配 支援自定義變數,陣列 ...
liunx之awk文字分析工具
支援自定義分隔符 支援正規表示式 支援自定義變數,陣列 a 1 a tom map key 支援內建變數 argc 命令列引數介紹 ar 命令列引數排列 environ 支援佇列中系統環境變數的使用 filename awk瀏覽的檔名 fnr 瀏覽檔案的記錄數 fs 設定輸入域分隔符,等價於命令列 ...