awk介紹
awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。
awk語法
awk ''
常用方法
1.逐行讀取並切開處理取出第一部分
last -n 2
root pts/1 192.168.1.100 mon feb 9 11:41 - 18:30 (06:48)
dmtsai pts/1 192.168.1.100 mon feb 9 11:41 - 11:41 (00:00)
last -n 2 | awk ''
root
dmtsai
awk工作流程是這樣的:讀入有』\n』換行符分割的一條記錄,然後將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,1表示2.-f ':'指定分割符第乙個域
,1表示第乙個域,
1表示第乙個
域,n表示第n個域。預設域分隔符是"空白鍵" 或 「[tab]鍵」,所以$1表示登入使用者,$3表示登入使用者ip,以此類推。
cat /etc/passwd |awk -f ':' ''
root /bin/bash
daemon /bin/sh
bin /bin/sh
3.begin、end補充文件頭與尾
cat /etc/passwd |awk -f ':' 'begin end '
name,shell
root,/bin/bash
daemon,/bin/sh
bin,/bin/sh
sys,/bin/sh
....
blue,/bin/nosh
4.內建變數
argc 命令列引數個數
ar** 命令列引數排列
environ 支援佇列中系統環境變數的使用
filename awk瀏覽的檔名
fnr 瀏覽檔案的記錄數
fs 設定輸入域分隔符,等價於命令列 -f選項
nf 瀏覽記錄的域的個數
nr 已讀的記錄數
ofs 輸出域分隔符
ors 輸出記錄分隔符
rs 控制記錄分隔符
5.迴圈與陣列高階用法
awk -f ':' 'begin ; end' /etc/passwd
0 root
1 daemon
2 bin
3 sys
4 sync
5 games
參考資料
官方使用者指南:
linux awk命令學習
awk是一種功能很強大的程式語言,用於linux系統下文字和資料的處理。本篇文章只學習一些awk相關的常規應用,而不對awk的語法進行討論,如果有需要,直接查資料就好了。1.檢視特定程序的pid,sh ps pid tty time cmd 414 00 00 00 rcs 417 00 00 00...
Linux awk 命令學習筆記
創始人 alfred aho,peter weinberger,和 brian kernighan 語法 awk options script var value file s awk options f scriptfile var value file s options常用引數說明 示例1,單...
Linux awk命令詳解
3.awk的執行過程 1 awk script的組成 awk script可以由一條或多條awk cmd組成,兩條awk cmd之間一般以newline分隔 awk cmd由兩部分組成 awk pattern awk script可以被分成多行書寫,必須確保整個awk script被單引號括起來。2...