成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

awk入門 —— 強大的文本分析工具

系統 Linux
awk 是用于 Unix 和類 Unix 系統的強大文本解析工具,但是由于它有可編程函數,因此你可以用它來執行常規解析任務,因此它也被視為一種編程語言。你可能不會使用 awk 開發下一個 GUI 應用,并且它可能不會代替你的默認腳本語言,但是它是用于特定任務的強大程序。

[[281490]]

讓我們開始使用它。

awk 是用于 Unix 和類 Unix 系統的強大文本解析工具,但是由于它有可編程函數,因此你可以用它來執行常規解析任務,因此它也被視為一種編程語言。你可能不會使用 awk 開發下一個 GUI 應用,并且它可能不會代替你的默認腳本語言,但是它是用于特定任務的強大程序。

這些任務或許是驚人的多樣化。了解 awk 可以解決你的哪些問題的最好方法是學習 awk。你會驚訝于 awk 如何幫助你完成更多工作,卻花費更少的精力。

awk 的基本語法是:

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

首先,創建此示例文件并將其保存為 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

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

打印列

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

  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

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

有條件地選擇列

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

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

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

  1. $ awk '$2 ~ /p.+p/ {print $0}' colours.txt
  2. grape   purple  10
  3. plum    purple  2

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

  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 使用空格作為字段分隔符。但是,并非所有文本文件都使用空格來定義字段。例如,用以下內容創建一個名為 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 就能以完全相同的方式處理數據。使用 --field-separator(或簡稱為 -F)選項來定義分隔符:

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

保存輸出

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

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

這將創建一個包含 awk 查詢內容的文件。

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

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

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

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2021-03-06 07:00:00

awk文本分析工具Linux

2019-03-21 14:30:15

Linux文本分析命令

2016-12-23 10:56:34

linuxshellawk

2020-07-07 10:50:19

Python丄則表達文本

2024-09-23 09:20:00

Python文本分析

2020-08-26 19:15:56

Python工具

2010-01-05 16:55:44

JSON 文本

2025-06-10 08:25:00

Python文本分析數據分析

2017-04-27 08:54:54

Python文本分析網絡

2022-10-09 08:00:00

機器學習文本分類算法

2023-11-28 15:18:24

Python

2021-07-08 06:47:19

JVM監控工具

2010-09-06 14:14:32

ppp-on

2010-08-03 16:17:17

NFS協議

2023-10-20 16:25:30

Python

2025-06-25 07:08:09

grepsedawk

2012-08-06 15:59:17

MongoDB

2020-12-07 14:46:07

程序員代碼分析工具

2021-03-29 23:05:36

程序員工具靜態分析

2021-11-01 05:53:08

Doldrums逆向工程分析工具安全工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天操人人干 | 亚洲一区二区三区四区视频 | 一区二区电影网 | 午夜影院在线观看版 | 亚洲福利视频一区二区 | 视频一区二区三区中文字幕 | 亚洲综合久久久 | 日韩欧美在线观看视频网站 | 九色av| av日韩在线播放 | 伊人超碰| 在线看片国产精品 | 久久久久久久一区 | 精品国产欧美一区二区三区成人 | 国产在线麻豆精品入口 | 午夜午夜精品一区二区三区文 | 国产一级片 | 97伦理电影网 | 精品国产精品三级精品av网址 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 国产精品成av人在线视午夜片 | 日日摸夜夜添夜夜添精品视频 | 国产精品视频导航 | 仙人掌旅馆在线观看 | 成人a视频在线观看 | 久久久av一区 | 中文字幕亚洲区 | 五月婷婷激情网 | 国产精品一区免费 | 国产a级黄色录像 | 午夜影视大全 | 免费久久久 | 91九色视频 | 怡红院怡春院一级毛片 | 欧美日韩精品久久久免费观看 | 中文在线a在线 | 欧美激情欧美激情在线五月 | 在线免费看毛片 | 国产精品毛片久久久久久久 | 亚洲精品粉嫩美女一区 | 中文字幕国产一区 |