国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

awk正則表達式和內置函數的使用方法實例詳解

2019-10-26 18:43:17
字體:
來源:轉載
供稿:網友

awk正則表達式及內置函數實例詳解:

1、模糊匹配:

代碼如下:
awk ‘{if($3~/97/) print $0}' data.f:如果第三項中含有”97”則打印該行
awk ‘{if($4!~/ufcx/) print $0}' data.f:如果第三項中不含ufcx有則打印

2、精確匹配:

代碼如下:
awk ‘{if($5==66) print $0}' data.f:如果第五項是66則打印
awk ‘{if($5!=66)print $0}' data.f : 如果第五項不是66則打印
awk ‘{if($1>$5) print $0}' data.f:如果第一項大于第五項則打印

3、大小寫匹配:

代碼如下:
awk ‘{if(/[Ss]ept/) print $0}' data.f:符合,則打印一行。
awk ‘/[Ss]ept/ {print $2}' data.f:符合,則打印第二字段

4、任意匹配:

代碼如下:
awk ‘{if($2 ~/^.e/) print $0}' data.f:第二字段中,第二個字符為e,輸出
awk ‘{if($4 ~/(lps|fcx)/) print $0}' data.f:第四個字段含有lps或fcx則輸出

5、&&,||:

代碼如下:
awk ‘{if($3 ~/1993/ && $2==”sept”) print $0}' data.f:兩邊都真則輸出
awk ‘{if($3 ~/a9/ || $2==”sept”) print $0}' data.f:一邊為真則輸出

6、變量定義:

awk ‘{date=$2;price=$5; if(date ~/[Ss]ept/) print “price is ” price}' data.f:變量定義,滿足date是sept或者Sept的將price輸出。

7、修改數值(源文件數值不變)

代碼如下:
awk ‘{BASELINE=42; if($1>BASELINE) $5=$5+100; print $0}' data.f:三行程序,以“;”分割

如果修改的是文本域,就要添加“”””。例如:awk ‘{if($2==”may”) $2=”tt”; print $0}' data.f

上邊都是顯示所有數據,awk ‘{if($2==”may”) {$2=”tt”; print $0}}' data.f這個只顯示修改數據,仔細看看,其實語法和c一樣,只是最外邊添加了一個{}符號。

8、創建新域:(源文件數值不變)

代碼如下:
awk ‘{if($5>$1){$8=$5-$1;print $1,$8}}' data.f:

或者awk ‘{if($5>$1){diff=$5-$1;print $1,diff}}' data.f

9、數據統計:

awk ‘{(total+=$5)}END{print total}' data.f:“{(total+=$5)}”和“{print total}”代表兩個不同的代碼段,如果沒有END每次的累積結果都會輸出,END可以理解為代碼段落的標志,這樣只輸出最終結果即{print total}只執行一次。

10、統計文件大?。?/p>

代碼如下:
ls –l | awk ‘{if(/^[^d]/) total=+$5}END{print “total KB:” total}':/^[^d]/行首匹配可以不寫域值$1

11、Awk內置變量:

ARGC 命令行參數個數

ARGV 命令行參數排列

ENVIRON 支持隊列中系統環境變量的使用

FILENAME awk瀏覽的文件名

FNR 瀏覽文件的記錄數

FS 設置輸入域分隔符,等價于命令行- F選項

NF 瀏覽記錄的域個數

NR 已讀的記錄數

OFS 輸出域分隔符

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 屏边| 泰安市| 准格尔旗| 谷城县| 垣曲县| 盘锦市| 友谊县| 商都县| 黄梅县| 余江县| 邵阳县| 安宁市| 安西县| 青神县| 长沙市| 洪泽县| 南汇区| 呼图壁县| 都昌县| 高青县| 科尔| 化隆| 潍坊市| 滁州市| 平塘县| 郓城县| 芦山县| 靖远县| 锡林浩特市| 麻阳| 阿巴嘎旗| 新宁县| 航空| 张掖市| 建宁县| 龙游县| 山丹县| 贵德县| 沂南县| 五河县| 湘潭县|