久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Linux系統(tǒng)中文本分析工具awk的用法

今天馬哥教育要跟大家分享的文章是關(guān)于Linux系統(tǒng)中文本分析工具awk的用法。awk 是用于 Unix 和類 Unix 系統(tǒng)的強大文本解析工具,但是由于它有可編程函數(shù),因此你可以用它來執(zhí)行常規(guī)解析任務(wù),因此它也被視為一種編程語言。你可能不會使用 awk 開發(fā)下一個 GUI 應(yīng)用,并且它可能不會代替你的默認腳本語言,但是它是用于特定任務(wù)的強大程序。Linux入門新手和正在Linux學習的小伙伴快來看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?!

這些任務(wù)或許是驚人的多樣化。了解 awk 可以解決你的哪些問題的最好方法是學習 awk。你會驚訝于 awk 如何幫助你完成更多工作,卻花費更少的精力。下面我們就一起來看一看awk的用法吧!

一、awk 的基本語法

1. awk [options] 'pattern {action}' file

首先,創(chuàng)建此示例文件并將其保存為 colours.txt。

1. name color amount

2. apple red 4

3. banana yellow 6

4. strawberry red 3

5. grape purple 10

6. apple green 8

7. plum purple 2

8. kiwi brown 4

9. potato brown 9

10. pineapple yellow 5

數(shù)據(jù)被一個或多個空格分隔為列。以某種方式組織要分析的數(shù)據(jù)是很常見的。它不一定總是由空格分隔的列,甚至可以不是逗號或分號,但尤其是在日志文件或數(shù)據(jù)轉(zhuǎn)儲中,通常有一個可預測的格式。你可以使用數(shù)據(jù)格式來幫助 awk 提取和處理你關(guān)注的數(shù)據(jù)。

二、打印列

在 awk 中,print 函數(shù)顯示你指定的內(nèi)容。你可以使用許多預定義的變量,但是最常見的是文本文件中以整數(shù)命名的列。試試看:

1. $ awk '{print $2;}' colours.txt

2. color

3. red

4. yellow

5. red

6. purple

7. green

8. purple

9. brown

10. brown

11. yellow

在這里,awk 顯示第二列,用 $2 表示。這是相對直觀的,因此你可能會猜測 print $1 顯示第一列,而 print $3 顯示第三列,依此類推。

要顯示全部列,請使用 $0。

美元符號($)后的數(shù)字是表達式,因此 $2 和 $(1+1) 是同一意思。

三、有條件地選擇列

你使用的示例文件非常結(jié)構(gòu)化。它有一行充當標題,并且各列直接相互關(guān)聯(lián)。通過定義條件,你可以限定 awk 在找到此數(shù)據(jù)時返回的內(nèi)容。例如,要查看第二列中與 yellow 匹配的項并打印第一列的內(nèi)容:

1. awk '$2=="yellow"{print $1}' file1.txt

2. banana

3. pineapple

正則表達式也可以工作。此表達式近似匹配 $2 中以 p 開頭跟上任意數(shù)量(一個或多個)字符后繼續(xù)跟上 p 的值:

1. $ awk '$2 ~ /p.+p/ {print $0}' colours.txt

2. grape purple 10

3. plum purple 2

數(shù)字能被 awk 自然解釋。例如,要打印第三列包含大于 5 的整數(shù)的行:

1. awk '$3>5 {print $1, $2}' colours.txt

2. name color

3. banana yellow

4. grape purple

5. apple green

6. potato brown

四、字段分隔符

默認情況下,awk 使用空格作為字段分隔符。但是,并非所有文本文件都使用空格來定義字段。例如,用以下內(nèi)容創(chuàng)建一個名為 colours.csv 的文件:

1. name,color,amount

2. apple,red,4

3. banana,yellow,6

4. strawberry,red,3

5. grape,purple,10

6. apple,green,8

7. plum,purple,2

8. kiwi,brown,4

9. potato,brown,9

10. pineapple,yellow,5

只要你指定將哪個字符用作命令中的字段分隔符,awk 就能以完全相同的方式處理數(shù)據(jù)。使用 --field-separator(或簡稱為 -F)選項來定義分隔符:

1. $ awk -F"," '$2=="yellow" {print $1}' file1.csv

2. banana

3. pineapple

五、保存輸出

使用輸出重定向,你可以將結(jié)果寫入文件。例如:

1. $ awk -F, '$3>5 {print $1, $2} colours.csv > output.txt

這將創(chuàng)建一個包含 awk 查詢內(nèi)容的文件。

你還可以將文件拆分為按列數(shù)據(jù)分組的多個文件。例如,如果要根據(jù)每行顯示的顏色將 colours.txt 拆分為多個文件,你可以在 awk 中包含重定向語句來重定向每條查詢:

1. $ awk '{print > $2".txt"}' colours.txt

這將生成名為 yellow.txt、red.txt 等文件。

以上就是馬哥教育今天為大家分享的關(guān)于Linux系統(tǒng)中文本分析工具awk的用法的文章,希望本篇文章能夠?qū)φ趶氖翷inux相關(guān)工作的小伙伴們有所幫助,想要了解更多Linux相關(guān)知識記得關(guān)注馬哥教育官網(wǎng)。

聲明:文章來源于網(wǎng)絡(luò),侵刪!

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓機構(gòu)!

    1. 主站蜘蛛池模板: 大渡口区| 桦甸市| 中超| 元谋县| 顺昌县| 佛冈县| 定边县| 莎车县| 东乡族自治县| 德安县| 北川| 宝丰县| 涿鹿县| 迭部县| 宁津县| 刚察县| 汝州市| 阜阳市| 泸溪县| 双流县| 昆明市| 兴仁县| 东乡族自治县| 莲花县| 南安市| 抚顺县| 三河市| 阿拉善右旗| 汕头市| 安图县| 彝良县| 伊川县| 襄汾县| 翁源县| 喀喇沁旗| 新密市| 文登市| 桐梓县| 康乐县| 错那县| 札达县|