中文字幕亚洲第一精品|精品国产免费一区二区|久久婷婷五月六月综合版|中文字幕熟妇久久久人妻|久久综合精品国产一区无码|国产成人精品永久免费视频|午夜亚洲国产精品理论片a级|久久精品一区二区三区无码护土

 訪問(wèn)手機(jī)版  

Linux常用命令|Linux培訓(xùn)學(xué)習(xí)|考試認(rèn)證|工資待遇與招聘,認(rèn)準(zhǔn)超級(jí)網(wǎng)工!

招聘|合作 登陸|注冊(cè)

網(wǎng)絡(luò)工程師培訓(xùn)

當(dāng)前位置:網(wǎng)絡(luò)工程師 > 技術(shù)課程 > linux > 熱點(diǎn)關(guān)注 > linux常用命令

Linux awk命令詳解

時(shí)間:2019-09-17

linux命令大全_linux命令大全 ssh_linux命令大全 重啟

awk是一個(gè)強(qiáng)大的文本分析工具,相對(duì)于grep的查找,sed的編輯,awk在其對(duì)數(shù)據(jù)分析并生成報(bào)告時(shí),顯得尤為強(qiáng)大。簡(jiǎn)單來(lái)說(shuō)awk就是把文件逐行的讀入,以空格為默認(rèn)分隔符將每行切片,切開(kāi)的部分再進(jìn)行各種分析處理。

使用方法 : awk '{pattern + action}' {filenames}

盡管操作可能會(huì)很復(fù)雜,但語(yǔ)法總是這樣,其中 pattern 表示 AWK 在數(shù)據(jù)中查找的內(nèi)容,而 action 是在找到匹配內(nèi)容時(shí)所執(zhí)行的一系列命令;ɡㄌ(hào)({})不需要在程序中始終出現(xiàn),但它們用于根據(jù)特定的模式對(duì)一系列指令進(jìn)行分組。 pattern就是要表示的正則表達(dá)式,用斜杠括起來(lái)。

awk語(yǔ)言的最基本功能是在文件或者字符串中基于指定規(guī)則瀏覽和抽取信息,awk抽取信息后,才能進(jìn)行其他文本操作。完整的awk腳本通常用來(lái)格式化文本文件中的信息。通常,awk是以文件的一行為處理單位的。awk每接收文件的一行,然后執(zhí)行相應(yīng)的命令linux命令大全,來(lái)處理文本。

ARGC 命令行參數(shù)個(gè)數(shù)

ARGV 命令行參數(shù)排列

ENVIRON 支持隊(duì)列中系統(tǒng)環(huán)境變量的使用

FILENAME awk瀏覽的文件名

FNR 瀏覽文件的記錄數(shù)

FS 設(shè)置輸入域分隔符,等價(jià)于命令行 -F選項(xiàng)

NF 瀏覽記錄的域的個(gè)數(shù)

NR 已讀的記錄數(shù)

OFS 輸出域分隔符

ORS 輸出記錄分隔符

RS 控制記錄分隔符

$0變量是指整條記錄。$1表示當(dāng)前行的第一個(gè)域,$2表示當(dāng)前行的第二個(gè)域,......以此類推。

1

$NF是number finally,表示最后一列的信息,跟變量NF是有區(qū)別的,變量NF統(tǒng)計(jì)的是每行列的總數(shù)

linux命令大全 重啟_linux命令大全_linux命令大全 ssh

awk擅長(zhǎng)列輸出

搜索/etc/passwd有root關(guān)鍵字的所有行

1

awk'/root/'/etc/passwd【這種是pattern的使用,匹配了pattern(這里是root)的行才會(huì)執(zhí)行action(沒(méi)有指定action,默認(rèn)輸出每行的內(nèi)容)】

搜索/etc/passwd有root關(guān)鍵字的所有行,并顯示對(duì)應(yīng)的shell

1

awk-F:%20'/root/%20{print%20$7}'/etc/passwd

統(tǒng)計(jì)/etc/passwd:文件名,每行的行號(hào),每行的列數(shù),對(duì)應(yīng)的完整行內(nèi)容:

1

awk-F%20':''{print%20"filename:"%20FILENAME%20",linenumber:"%20NR%20",columns:"%20NF%20",linecontent:"$0}'/etc/passwd

使用printf替代print,可以讓代碼更加簡(jiǎn)潔,易讀

1

awk-F:%20'{printf%20("filename:s,%20linenumber:%3s,column:%3s,content:%3f\n",FILENAME,NR,NF,$0)}'/etc/passwd

打印/etc/passwd/的第二行信息

1

awk-F:%20'NR==2{print%20"filename:%20"FILENAME,%20$0}'/etc/passwd

awk的過(guò)濾使用方法

1

指定特定的分隔符,查詢第一列

1

awk-F%20":"'{print%20$1}'/etc/passwd

指定特定的分隔符linux命令大全,查詢最后一列

1

awk-F%20":"'{print%20$NF}'/etc/passwd

指定特定的分隔符,查詢倒數(shù)第二列

1

awk-F%20":"'{print%20$NF-1}'/etc/passwd

獲取第12到31行的第一列的信息

1

awk-F ":"'{if(NR<31 && NR >12) print $1}'/etc/passwd

 上一個(gè)教程:wxb880114的專欄