平常工作或學習中總是需要對一些資料進行處理(例如在工作中,需要對日誌的一些資料進行統計)。而awk 這是好用的工具之一,傾向於一行當中分成數個字段進行處理。
awk '條件型別1 條件型別2 ...' filename
兩個單引號+大括號{} 設定想要對資料進行的處理操作, filename表示處理的資料檔案。
1、可以對檔案進行操作。 如:awk '***' filename
2、 可以接前一段命令的輸出。 如:grep *** filename | awk '***'
表示對查詢結果的處理
awk '條件型別1 條件型別2 ...' filename
1、讀入第1行,並將第1行的資料寫入$0、$1、$2… 其中$0表示整行, $n表示分割之後第n列(這裡會有個坑,後續會碰到)
2、根據『條件型別』的限制,判斷是否需要進行後面的"操作"。
3、完成所有操作與條件型別、
4、若還有後續的【行】的資料,重複1~3。
前面說到awk主要處理每行欄位內的資料,這意味著要對每一行進行分段。預設分割欄位為"空格鍵" 和 「[table]鍵」。
如在檔案中寫入"123 234"echo "123 234" > 1.data
然後如果想分別列印出來則可以使用awk '' 1.data
如果在檔案中寫入的是"123,234"echo "123,234" > 2.data
那在想要得到相同的效果, 則需要設定分隔符定義:
1、 可以使用 -f』,'的形式:awk自帶多種內建變數,熟練掌握可以再處理資料時更加得心應手awk -f',' '' 1.data
emmmm 貌似出了問題。。檢查一下,發現是 1.data,中間為空格,因此以逗號(,) 分割的話,只會分割出一列來。第二列的值為空。
修改過來後,解決
2、可以採用awk的內建變數幫忙"fs"
awk ' ' 2.data
變數名稱
代表意義
nf每一行($0)擁有的字段總數
nr目前awk所處理的是第幾行資料
fs目前的分隔字元
資料處理工具之awk
1.awk是以行為一次處理的單位,而以字段為最小的處理單位。awk分別代表其作者姓氏的第乙個字母。因為它的作者是三個人,分別是alfred aho brian kernighan peter weinberger。2.awk命令的格式 awk 條件型別1 條件型別2 filename 備註,awk可...
大資料處理工具
一 大資料的4v特性 1 volume 體量巨大 2 variety 資料型別繁多 3 value 價值密度低 4 velocity 處理速度快 二 大資料處理需要解決的問題 1 儲存 2 計算 3 挖掘 4 展現 三 大資料處理涉及的6個方面 1 資料入口 資料傳輸和同步一般採用基於時間線的實時同...
sed管道命令及資料處理工具awk命令
語法 sed nefri 動作 n 使用安靜模式,在一般情況所有的 stdin 都會輸出到螢幕上,加入 n 後只列印 被 sed 特殊處理的行 e 多重編輯,且命令順序會影響結果 f 直接將sed的動作寫在乙個檔案中,然後 f filename則可執行filename內的sed動作 r sed 使用...