在linux下進行一些簡單的文字處理, 尤其是涉及資料基本過濾加工彙總的,awk 十分方便, 複雜的處理還是用python比較好。總結一下一些 awk 的常用技巧:
awk '' info.txt # 輸出指定列
awk '$2==1 && $5=="error"' info.txt # 按條件過濾,$2是內建變數,表示第二列
awk '$2>1' info.txt # 按條件過濾,如果列為數字,其大小可以作為比較條件
awk '$2==1 && $5=="info" || nr==1'
# 內建變數nr:表示行號
awk '$2>2 && nr!=1 ' info.txt # 內建變數fnr:表示檔案行號
awk -f: '' info.txt # -f 指定列分隔符,預設是空格或tab,這裡制定冒號
awk -f '[:,]'
'' info.txt # -f 制定多個列分隔符
awk '$2==0 || nr==1 ' info.txt ## printf 用法同c語言中的
awk '/mode/' info.txt # 匹配含mode的行,引號可不輸,類似 grep mode info.txt
awk '!/mode/' info.txt # 匹配不含mode的行,類似於 grep -v 的用法
awk '/mode|mode2/' info.txt # 匹配含mode或者mode2的行,正則匹配用法
awk '$12 ~ /work/ ' info.txt # 第12列匹配work,指定列進行字串匹配
awk '$12 !~ /work/ ' info.txt # 第12列不匹配work,類似於 grep -v 的用法
awk 'nr!=1' info.txt # 按照第2列進行拆分,第二列一樣的內容重定向到以第二列命名的檔案裡
awk ' end ' info.txt # 求第二列的和,end表示處理完畢所有行
root@ubuntu:/media/psf/home/ilearning/tmp# cat info.txt
user pid %cpu %mem vsz rss tty stat start time command
root 2
0.00.0
00 ? s mar13 0:01 [kthreadd]
root 3
0.00.0
00 ? s mar13 0:05 \_ [ksoftirqd/0]
root 5
0.00.0
00 ? s< mar13 0:00 \_ [kworker/0:0h]
root 7
0.00.0
00 ? s mar13 22:07 \_ [rcu_sched]
root@ubuntu:/media/psf/home/ilearning/tmp# awk ' end ' info.txt
17
awk 簡明教程
the gnu awk user』s guide
awk基本用法
1 awk f begin etc passwd 以 為分隔符,處理前列印name,列印第一列 2 awk f beginend etc passwd 以 為分隔符,處理列印前name,列印第一列,在處理後列印總行數 3 awk f beginend etc passwd 以 為分隔符,處理前列印n...
awk基本用法
awk程式語言 資料處理引擎 創造者 aho weinberger kernighan 基於模式匹配檢查輸入文字,逐行處理並輸出 通常用在shell指令碼中,獲取指定的資料 單獨用時,可對文字資料做統計 命令格式解析 主要用法 格式1 前置命令 awk 選項 條件 格式2 awk 選項 條件 檔案 ...
AWK基本用法
1 awk的基本用法 其中options代表引數,單引號中的內容代表要執行的命令,filename代表檔名 awk options 如 awk f,log.txt 上面這段命令的含義是,列印檔案log.txt的每一行的第乙個和第二個字串,每一行的每個字串中間的分隔符為 當沒有引數 f時,預設的分隔符...