六周第三次課(1月17日)
9.6/9.7 awk
awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行各種分析處理。awk有3個不同版本: awk、nawk和gawk,未作特別說明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名稱得自於它的創始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首個字母。實際上 AWK 的確擁有自己的語言: AWK 程序設計語言 , 三位創建者已將它正式定義為“樣式掃描和處理語言”。它允許您創建簡短的程序,這些程序讀取輸入文件、為數據排序、處理數據、對輸入執行計算以及生成報表,還有無數其他的功能。
awk -F ":" "{print $1}" test.txt 指定分割f為: 把第一段打印出來
$0表示所有的段
打印所有的段 相當於cat
不指定分割f,默認以空格或空白為分割進行打印
指定分割f,打印多段
指定中間以什麽為分割
把包含oo的打印出來 awk "/oo/"
匹配第一段包含oo的行
適用正則表達式 且不用加脫義字符
支持多個表達式一起寫
打印第三段等於0的行 要寫2個=,寫1個=是賦值,不寫print默認是print $0
打印大於等於1000的
加上雙引號,以ASCII碼計算,會認為這是一個字符串 需求如果是針對數字的不要加雙引號
第七段不等於!= 字符串要加上雙引號
比較2個字段 第三段小於第四段 相等的行
多個判斷一起 $3>5並且$3<7
-F指定分割前的分割f,OFS=指定print時分割後用到的分割f
NR 表示行 類似grep -n NF表示段
NR作為判斷條件
NF作為判斷條件
$1$7到$30$7 $NF指最後一段
$1=root 賦值,以:分割打印,賦值為root,賦值之後分割f沒了,使用OFS定義分割F
求和第三段所有值的和
擴展
把這裏面的所有練習題做一下
http://www.apelearn.com/study_v2/chapter14.html
六周第三次課(1月17日)