『壹』 awk命令詳解
除了使用sed命令答租運,Linux系統中還有一個功能更加強大型緩的文本數據處理工具,就是awk。它誕生於20世紀70年代末期,這也許是它影響了眾多Linux用戶的原因之一。和sed命令類似,awk命令也是逐行掃描文件(從第1行到最後一行),尋找含有目標文本的行,如果匹配成功,則會在該行上執行用戶想要的操作;反之,則不對行做任何處理。awk命令的基本格式[root@localhost]#awk[選項]'腳本命令'文件名。awk的強大之處在於腳本命令,它由2部分組成,分別為匹配規則和執行命令。
awk的主要特性之一是其處理文本文件中數據的能力
它會自動給一行清梁中的每個數據元素分配一個變數。
『貳』 awk命令詳解是什麼
awk命令是linux下的一個文件管理命令,具體語法格式為awk [參數] [文件],通常是用於文本和數據進行處理的編程語言,awk命令主要有兩個功能;awk命令可以在linux/unix下對文本和數據進行處理;awk命令支持用戶自定義函數和動態正則表達式。
相關介紹:
AWK是一種優良的文本處理工具。它不僅是Linux中也是任何環境中現有的功能最強大的數據處理引擎之一。這種編程及數據操作語言(其名稱得自於它的創始人AlfredAho、PeterWeinberger和BrianKernighan姓氏的首個字母)的最大功能取決於一個人所擁有的知識。
AWK提供了極其強大的功能:可以進行樣式裝入、流控制、數學運算符、進程式控制制語句甚至於內置的變數和函數。它具備了一個完整的語言所應具有的幾乎所有精美特性。
實際上AWK的確擁有自己的語言:AWK程序設計語言,三位創建者已將它正式定義為「樣式掃描和處理語言」。它允許您創建簡短的程序,這些程序讀取輸入文件、為數據排序、處理數據、對輸入執行計算以及生成報表,還有無數其他的功能。
最簡單地說,AWK是一種用於處理文本的編程鬧畝數語言工具。AWK在很多方面類似於shell編程語言,盡管AWK具有完全屬於其本身的語法。它的設耐雀計思想來源於SNOBOL4、sed、MarcRochkind設計的有效性語言、語言工具yacc和lex,當然還從C語言中獲取了一些優秀的思想。
在最初創造AWK時,其目的是用於文本處理,並且這種語言的基礎是,只要在輸入數據中有模式匹配,就執行一液首系列指令。
『叄』 linux awk命令詳解
awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在對數據分析並生成報告時,顯得尤為強大。
簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部飢物型分再進行各種分析處理。
awk有三個不同的版本:awk、nawk和gawk,未作特別說明,一般指gawk,gawk是awk的GNU版本。
之所以叫awk是因為其取了三位創始人Alfred Aho,Peter Weinberger,和Brian Kernighan的Family
Name的首字元。
awk格式:
格式: sed -n '3p' sed.txt
找誰幹啥(條件螞啟動作)
awk格式
#取出/etc/passwd 第1行的第1列和第3列
awk -F: 'NR==1{print $1,$3}' /etc/passwd
awk 選項 '條件{動作}' /etc/passwd
條件: 哪一行,過濾什麼內容
動作: print輸出與顯示 ,計算....
awk取行:與sed類似
案例01:取出sed.txt的第2行
[root@oldboy81-golden-lnb /oldboy]# cat sed.txt
101,oldgirl,CEO
102,zhangya,CTO
103,li007,COO
104,yy,CFO
105,feixue,CIO
110,li,COCO
[root@oldboy81-golden-lnb /oldboy]# awk 'NR==2' sed.txt
102,zhangya,CTO
#awk '行號 等於 2' sed.txt
#NR awk內置變數
Number of Record 記錄號(行號)
案例02:取出sed.txt中包含oldboy或li的行
[root@oldboy81-golden-lnb /oldboy]# sed -rn '/oldboy|li/p' sed.txt
103,li007,COO
110,li,COCO
[root@oldboy81-golden-lnb /oldboy]# awk '/oldboy|li/' sed.txt
103,li007,COO
110,li,COCO
案例03:取出文件第2行到第5行內容
#awk '行號大於等於2 並且 行號小於等於5' sed.txt
#方法01
awk 'NR>=2 && NR<=5' sed.txt #必會
&& 表示並且.
#方法02
sed -n '2,5p' sed.txt
#方法03 了解
awk 'NR==2,NR==5' sed.txt #從行號是2的行開始 到 行號是5的行結束( 了解)
案例04:取出文件第3行到最後一行內容
[root@oldboy81-golden-lnb /oldboy]# awk 'NR >= 3' sed.txt
103,li007,COO
104,yy,CFO
105,feixue,CIO
110,li,COCO
[root@oldboy81-golden-lnb /oldboy]# sed -n '3,$p' sed.txt
103,li007,COO
104,yy,CFO
105,feixue,CIO
110,li,COCO
案例05:取出從包含oldboy的行到li的行
[root@oldboy81-golden-lnb /oldboy]# cat sed.txt
101,oldgirl,CEO
102,zhangya,CTO
103,li007,COO
104,yy,CFO
105,feixue,CIO
110,li,COCO
root@oldboy81-golden-lnb /oldboy]# sed -n '/old/,/li/p' sed.txt
101,oldgirl,CEO
102,zhangya,CTO
103,li007,COO
[root@oldboy81-golden-lnb /爛猜oldboy]# awk '/old/ , /li/' sed.txt
101,oldgirl,CEO
102,zhangya,CTO
103,li007,COO