久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

linux中如何使用awk

155次閱讀
沒有評論

共計 1930 個字符,預計需要花費 5 分鐘才能閱讀完成。

這篇文章給大家分享的是有關 linux 中如何使用 awk 的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。

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

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

awk 的基本語法是:

awk [options]  pattern {action}  file

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

name color amountapple red 4banana yellow 6strawberry red 3grape purple 10apple green 8plum purple 2kiwi brown 4potato brown 9pineapple yellow 5

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

打印列

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

$ awk  {print $2;}  colours.txtcolorredyellowredpurplegreenpurplebrownbrownyellow

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

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

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

有條件地選擇列

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

awk  $2== yellow {print $1}  file1.txtbananapineapple

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

$ awk  $2 ~ /p.+p/ {print $0}  colours.txtgrape purple 10plum purple 2

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

awk  $3 5 {print $1, $2}  colours.txtname colorbanana yellowgrape purpleapple greenpotato brown

字段分隔符

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

name,color,amountapple,red,4banana,yellow,6strawberry,red,3grape,purple,10apple,green,8plum,purple,2kiwi,brown,4potato,brown,9pineapple,yellow,5

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

$ awk -F ,   $2== yellow  {print $1}  file1.csvbananapineapple

保存輸出

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

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

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

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

$ awk  {print   $2 .txt}  colours.txt

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

感謝各位的閱讀!關于“linux 中如何使用 awk”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計1930字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 长顺县| 象山县| 类乌齐县| 灯塔市| 林周县| 江达县| 且末县| 海口市| 淅川县| 苏尼特左旗| 碌曲县| 夹江县| 江西省| 同德县| 萝北县| 永善县| 博野县| 伊川县| 高雄市| 庆元县| 方城县| 确山县| 潞西市| 甘泉县| 运城市| 保德县| 定兴县| 宝应县| 普兰店市| 鄄城县| 义马市| 唐河县| 梅河口市| 通河县| 绵阳市| 梁山县| 石柱| 濮阳县| 扎赉特旗| 延安市| 武宁县|