例子一:列印檔案n到n+m行
-f :允許awk更改其欄位分隔符
-v :var=val把val值賦值給var如果有多個變數要賦值,那麼就寫多個-v,每個變數賦值對應乙個-v
cat txt1.021 33
a 44
2.53 6
b 749 1
c 95.0 8
#列印檔案n到n+m行
awk -v n=2 -v m=3 'nr==n,nr==n+m' txt
例子二:內建變數
argc:命令列引數的個數
argv:命令列引數陣列
argind: 當前被處理檔案的argv標誌符
cat anr:已經讀出的記錄數i am file a
cat b
i am file b
awk ' if(argind==2)}' a b
fnr:當前檔案的記錄數
#輸入檔案a和b,由於先掃瞄a,所以掃瞄a的時候必然有nr==fnr,然後掃瞄b的時候,fnr從1開始計數,而nr則接著a的行數繼續計數,所以nr > fnrfs:輸入字段分隔符(預設為:space:),相當於-f選項awk 'nr==fnr nr>fnr' a b
awk -f ':' ''a 和 awk 'begin' a是一樣的
ofs:輸出字段分隔符(預設為:space:)
cat b(小注釋:awk把分割後的第1、2、3個字段用$1,$2,$3...表示,$0表示整個記錄(一般就是一整行))1:2:3
4:5:6
awk -f ':' 'begin' b
#那麼把ofs設定成";"後就會輸出
1;2;3
4;5;6
nf:當前記錄中的字段個數
cat crs:輸入記錄分隔符,預設為"\n"1:2:3
1:2awk -f ':' '' c32
#可用於字段數過濾
awk -f ':' '' c
1:2:3
預設情況下,awk把一行看作乙個記錄;如果設定了rs,那麼awk按照rs來分割記錄
cat dawk 'begin' d
hello world
i am a boy
ors:輸出記錄分隔符,預設為換行符,控制每個print語句後的輸出符號
catc
1:2:3
1:2awk 'begin' c
1;1;
AWK神器,繼續案例
例子一 列印檔案n到n m行 f 允許awk更改其欄位分隔符 v var val把val值賦值給var如果有多個變數要賦值,那麼就寫多個 v,每個變數賦值對應乙個 v cat txt 1.021 33 a 44 2.53 6 b 749 1 c 95.0 8 列印檔案n到n m行 awk v n 2...
AWK神器,陣列案例
例子1 簡單統計字母出現次數 cat daa bcde dfde ghawk end d sort a 2 b 1 c 1 d 3 e 2 f 1 g 1 h 1例子二 awk讀取shell中的變數 b 1 cat f awk v var b f 除了使用 v選項外,還可以使用 variable 的...
awk 使用案例
awk 語言的最基本功能是在檔案或字串中基於指定規則瀏覽和抽取資訊,awk 抽取資訊後,才能進行其他文字操作,完整的 awk 指令碼通常用來格式化文字檔案中的資訊 語法格式 awk 選項 指令 操作檔案 常用選項 f 指定分隔符,分隔符用 引起來 不加任何引數預設為空格分隔 定位行號 使用nr ro...