一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

一分鐘學(xué)awk夠用(產(chǎn)品經(jīng)理都懂了)

 BENpudding 2015-11-26

1分鐘懂a(chǎn)wk-技不在深,夠用就行


1.什么是AWK
(1)Aho、Weinberger、Kernighan三位發(fā)明者名字首字母;
(2)一個(gè)行文本處理工具;


2.AWK基本原理
2.1原理逐行處理文件中的數(shù)據(jù)

2.2語法


awk 'pattern + {action}'

說明:
(1)單引號(hào)''是為了和shell命令區(qū)分開;
(2)大括號(hào){}表示一個(gè)命令分組;
(3)pattern是一個(gè)過濾器,表示命中pattern的行才進(jìn)行action處理;
(4)action是處理動(dòng)作;
(5)使用#作為注釋;
例子:顯示hello.txt中的第3行至第5行


cat hello.txt | awk 'NR==3, NR==5{print;}'

2.3pattern說明
pattern參數(shù)可以是egrep正則中的一個(gè),正則使用/pattern/
例子:顯示hello.txt中,正則匹配hello的行


cat hello.txt | awk '/hello/'

說明:
(1)pattern和action可以只有其一,但不能兩者都沒有;
(2)默認(rèn)的action是print;
例子:顯示hello.txt中,長度大于100的行號(hào)


cat hello.txt | awk 'length($0)>80{print NR}'


3.內(nèi)置變量
FS 分隔符,默認(rèn)是空格
NR 當(dāng)前行數(shù),從1開始
NF 當(dāng)前記錄字段個(gè)數(shù)
$0 當(dāng)前記錄
$1~$n 當(dāng)前記錄第n個(gè)字段
例子:顯示hello.txt中的第3行至第5行的第一列與最后一列


cat hello.txt | awk 'NR==3, NR==5{print $1,$NF}'


4.內(nèi)置函數(shù)
gsub(r,s):在$0中用s代替r
index(s,t):返回s中t的第一個(gè)位置
length(s):s的長度
match(s,r):s是否匹配r
split(s,a,fs):在fs上將s分成序列a
substr(s,p):返回s從p開始的子串


5.操作符
5.1運(yùn)算符
類似于c,支持+、-、*、/、%、++、–、+=、-=等諸多操作;

5.2判斷符
類似于c,支持==、!=、>、=>、~(匹配于)等諸多判斷操作;


6.控制流程
6.1.BEGIN和END
BEGIN和END本質(zhì)是一個(gè)pattern。
BEGIN用于awk程序開始開始前,做一些初始化的工作;
END用于awk程序結(jié)束前,做一些收尾的工作。
例子:統(tǒng)計(jì)字符個(gè)數(shù)


awk '

BEGIN

{

count=0;

}

{

count+=length($0);

}

END

{

print count;

}'

6.2流程控制語句
(1)if(condition){}else{}
(2)while{}
(3)do{}while(condition);
(4)for(init;condition;step){}
(5)break/continue:如果有END,會(huì)執(zhí)行END中的收尾工作
個(gè)流程控制語句用法幾乎與c相同。


7.awk與shell的交互
(1)awk中使用shell中定義的變量:使用單引號(hào)即可;


#!/bin/bash

STR='hello'

echo | awk '{

print ''${STR}'';

}'

(2)awk中使用shell命令:使用雙引號(hào),或者system命令;


#!/bin/bash

echo hello | awk '{

print $0 | 'cat'

}'

或者


#!/bin/bash

echo | awk '{

system('date > date.txt')

}'

(3)awk中的變量傳出至shell:沒有什么好方法,老老實(shí)實(shí)用文件吧;
(4)getline:awk里,從文件中讀取變量到awk中


#!/bin/bash

echo | awk '{

while(getline < 'date.txt')

{

print $0;

}

}'


8.結(jié)束語

對(duì)不起,樓主欺騙了你,認(rèn)真看完本文或許不止1分鐘。不過,如果你真的認(rèn)真閱讀并超過了1分鐘,相信你會(huì)有收獲。

==【完】==

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产精品一区二区香蕉视频| 黄片免费在线观看日韩| 日本加勒比不卡二三四区| 久久精品国产亚洲av麻豆| 国产精品久久三级精品| 91天堂免费在线观看| 免费特黄欧美亚洲黄片| 久久精品欧美一区二区三不卡| 亚洲中文字幕视频一区二区| 好吊日成人免费视频公开| 成在线人免费视频一区二区| 亚洲熟女乱色一区二区三区| 少妇人妻精品一区二区三区 | 色哟哟国产精品免费视频| 亚洲综合精品天堂夜夜| 日本91在线观看视频| 五月激情综合在线视频| 东京热一二三区在线免| 亚洲专区中文字幕在线| 麻豆剧果冻传媒一二三区| 中国美女草逼一级黄片视频| 欧美又大又黄刺激视频| 麻豆印象传媒在线观看| 国产免费成人激情视频| 五月天丁香婷婷一区二区| 又色又爽又无遮挡的视频| 国产一区二区不卡在线视频| 91日韩在线视频观看| 厕所偷拍一区二区三区视频| 中文字幕亚洲人妻在线视频| 午夜亚洲少妇福利诱惑| 激情图日韩精品中文字幕| 国产偷拍精品在线视频| 亚洲欧美国产中文色妇| 日韩18一区二区三区| 日韩国产亚洲一区二区三区| 欧美日韩国产精品第五页| 99久久婷婷国产亚洲综合精品| 极品少妇嫩草视频在线观看| 欧美精品日韩精品一区 | 日韩精品少妇人妻一区二区|