日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

【Linux学习】强大的文本分析工具AWK

發(fā)布時(shí)間:2023/12/10 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Linux学习】强大的文本分析工具AWK 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

之所以叫 AWK 是因?yàn)槠淙×巳粍?chuàng)始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。

?

調(diào)用AWK:

1.命令行方式(常用)
awk [-F ?field-separator] ?'commands' ?input-file(s)
其中,commands 是真正awk命令,[-F域分隔符]是可選的。 input-file(s) 是待處理的文件。
在awk中,文件的每一行中,由域分隔符分開(kāi)的每一項(xiàng)稱(chēng)為一個(gè)域。通常,在不指名-F域分隔符的情況下,默認(rèn)的域分隔符是空格。

2.shell腳本方式
將所有的awk命令插入一個(gè)文件,并使awk程序可執(zhí)行,然后awk命令解釋器作為腳本的首行,一遍通過(guò)鍵入腳本名稱(chēng)來(lái)調(diào)用。
相當(dāng)于shell腳本首行的:#!/bin/sh
可以換成:#!/bin/awk

3.將所有的awk命令插入一個(gè)單獨(dú)文件,然后調(diào)用:
awk -f awk-script-file input-file(s)
其中,-f選項(xiàng)加載awk-script-file中的awk腳本,input-file(s)跟上面的是一樣的。

?

使用方法

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)的命令,來(lái)處理文本。

?

因?yàn)閍wk其實(shí)也是一種編程語(yǔ)言,所以他內(nèi)置的語(yǔ)法可以直接使用print(類(lèi)似python2),print也是日常使用中最常見(jiàn)的一種方式。

print函數(shù)的參數(shù)可以是變量、數(shù)值或字符串常量。字符串必須用雙引號(hào)括起來(lái)。參數(shù)之間用逗號(hào)分隔,如果沒(méi)有逗號(hào),所有的參數(shù)就會(huì)被串在一起。逗號(hào)等價(jià)于OFS中的值,默認(rèn)情況下是空格。OFS是內(nèi)建變量。

工作流程:

awk工作流程是這樣的:先執(zhí)行BEGING,然后讀取文件,讀入有/n換行符分割的一條記錄,然后將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,$1表示第一個(gè)域,$n表示第n個(gè)域,隨后開(kāi)始執(zhí)行模式所對(duì)應(yīng)的動(dòng)作action。接著開(kāi)始讀入第二條記錄······直到所有的記錄都讀完,最后執(zhí)行END操作。

主要掌握print的例子就好。

?

參考鏈接:

https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html(好文)

https://blog.csdn.net/xiyangyang052/article/details/44926793(補(bǔ)充)

https://www.cnblogs.com/kevingrace/p/8481965.html(很多操作示例)

https://www.runoob.com/linux/linux-comm-awk.html(菜鳥(niǎo)教程)

總結(jié)

以上是生活随笔為你收集整理的【Linux学习】强大的文本分析工具AWK的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。