awk文字分析工具

2021-07-31 03:14:54 字數 1623 閱讀 9306

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 設定輸入域分隔符,等價於命令列 ...