前言
Linux擁有遠超Windows的文本處理能力,其中的原因離不開Linux處理文本的三劍客,藉助與sed以及管道|使得分析處理數據更加的方便。
AWK
來源今生
AWK是一種特定於域的語言,專門用於文本處理,通常用作數據提取和報告工具。它是大多數類Unix操作系統的標準功能。
AWK語言是一種數據驅動的 腳本語言,包含一組針對文本數據流採取的操作-直接在文件上運行或用作管道的一部分-用於提取或轉換文本,例如生成格式化的文本報告。該語言廣泛使用字符串 數據類型,關聯數組(即由鍵字符串索引的數組)和正則表達式。儘管AWK具有有限的預期應用領域,並且專門設計用於支持單行程序,但該語言是圖靈完備的,甚至早期的Bell Labs AWK用戶也經常編寫結構合理的大型AWK程序
AWK於1970年代在貝爾實驗室創建,[5] [ 需要更好的資源 ],其名稱來源於其作者的姓氏:Alfred Aho,Peter Weinberger和Brian Kernighan。該首字母縮寫詞與*AWK編程語言*的封面上的auk auk相同。[6] 當使用所有小寫字母as編寫時,它表示運行以AWK編程語言編寫的腳本的Unix或Plan 9程序。
來自維基百科
用法
AWK就是把文本以特定的形式分割,然後一行一行地處理,默認以換行符作爲分割。而行內分割則默認爲空格等。。
首先說參數
awk [選項參數] 'script' var=value file(s) 或 awk [選項參數] -f scriptfile var=value file(s)
選項參數說明:
-F fs or --field-separator fs
指定輸入文件折分隔符,fs是一個字符串或者是一個正則表達式,如-F:。-v var=value or --asign var=value
賦值一個用戶定義變量。-f scripfile or --file scriptfile
從腳本文件中讀取awk命令。-mf nnn and -mr nnn
對nnn值設置內在限制,-mf選項限制分配給nnn的最大塊數目;-mr選項限制記錄的最大數目。這兩個功能是Bell實驗室版awk的擴展功能,在標準awk中不適用。-W compact or --compat, -W traditional or --traditional
在兼容模式下運行awk。所以gawk的行爲和標準的awk完全一樣,所有的awk擴展都被忽略。-W copyleft or --copyleft, -W copyright or --copyright
打印簡短的版權信息。-W help or --help, -W usage or --usage
打印全部awk選項和每個選項的簡短說明。-W lint or --lint
打印不能向傳統unix平臺移植的結構的警告。-W lint-old or --lint-old
打印關於不能向傳統unix平臺移植的結構的警告。-W posix
打開兼容模式。但有以下限制,不識別:/x、函數關鍵字、func、換碼序列以及當fs是一個空格時,將新行作爲一個域分隔符;操作符和=不能代替和=;fflush無效。-W re-interval or --re-inerval
允許間隔正則表達式的使用,參考(grep中的Posix字符類),如括號表達式[[:alpha:]]。-W source program-text or --source program-text
使用program-text作爲源代碼,可與-f命令混用。-W version or --version
打印bug報告信息的版本。 摘自菜鳥教程
CUT
字面意思,剪切文本,常用參數有-d 自定義分割 -c 按字符大小分割 -a -f 分割後顯示的部分
GREP
嗯, 聚合或者說篩選,將某種特定標識聚合一下
其他常用命令
sort 排序
uniq 篩重 -c
head
tail 等
週末補上吧。。。。