小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

10個超級棒的Awk命令

 青檸二鍋頭 2021-04-26
Awk命令是處理數(shù)據(jù)的強大工具。它獲取輸入數(shù)據(jù),對其進行操作,并在標準輸出中給出結(jié)果。可以對文件的行和列執(zhí)行各種操作。
要有效地處理數(shù)據(jù),了解“awk”命令的基本要素是非常重要的,這篇文章將涵蓋“awk”命令的關(guān)鍵特性。讓我們先看看語法:
$ awk [options] [file]
下表列出了一些常用的選項:
選項說明
-FTo specify a file separator
-f指定包含“awk”腳本的文件
-v 指定變量
讓我們看一些有關(guān)“ awk”命令用法的示例,為了演示,我新建了一個文本文件,名稱為.txt:
1、如何使用awk命令打印文件的列?
“ awk”命令可用于獲取文本文件的特定列。要打印文件的內(nèi)容,請使用:
linuxmi@linuxmi:~/www.$ cat .txt

圖片

現(xiàn)在,打印文件的第二列,使用:
linuxmi@linuxmi:~/www.$ awk '{print $2}' linuxmi.txt
圖片
要打印多個字段,使用命令:
linuxmi@linuxmi:~/www.$ awk '{print $1,$2,$3}' linuxmi.txt
圖片
如果你不使用逗號“,”,那么輸出將沒有空格:
linuxmi@linuxmi:~/www.$ awk '{print $1$2$3}' linuxmi.txt
圖片
更新地址:https://www./10-awk-mingling.html
2、如何使用正則表達式與awk命令:
為了匹配字符串或任何表達式,我們使用斜杠' // ',例如,如果你想打印正在學(xué)習(xí)'lishi'的人的名字,那么使用:
linuxmi@linuxmi:~/www.$ awk '/歷史/{print $2}' linuxmi.txt
張三
方咪
圖片
輸出清楚地表明,只有“張三”和“方咪”正在學(xué)習(xí)“歷史”課程。
3、如何通過“awk”命令使用關(guān)系表達式:
為了匹配特定字段的內(nèi)容,可以使用關(guān)系表達式。要將任何字符串或表達式與字段進行匹配,請指示該字段,并使用比較符“?”與以下命令中顯示的模式進行比較:
linuxmi@linuxmi:~/www.$ awk '$3 ~/語/ {print $2}' linuxmi.txt
陳明
魚魚
圖片
上面的輸出顯示第2列中的每個字段與第3列中包含“語”的每個字段的對比。
要獲得上述命令的相反輸出,請使用“! ~”運算符:
linuxmi@linuxmi:~/www.$ awk '$3!~/語/ {print $2}' linuxmi.txt
圖片
為了進行比較,我們還可以使用大于“>”,小于“ <”和等于“ =”的運算符:
linuxmi@linuxmi:~/www.$ awk '$4>81 {print $2}' linuxmi.txt
李華
方咪
圖片
輸出顯示了獲得81分以上得分的人員的姓名。
4、如何通過awk命令使用范圍模式:
范圍也可以用于搜索;只需使用逗號“,”來分隔范圍,如下面提到的命令所示:
linuxmi@linuxmi:~/www.$ awk '/李四/,/陳明/ {print $3}' linuxmi.txt
輸出顯示第2列中從“李四”到“陳明”之間的課程。請參見下面的示例:
圖片
linuxmi@linuxmi:~/www.$ awk '$4==87,$4==91 {print $2}' linuxmi.txt
輸出顯示第2列中人員的姓名,第4列中標記“ 87到91”的范圍。
圖片
5、如何使用邏輯運算符組合模式:
使用邏輯運算符(例如OR“ ||”,“ &&&”)可以組合模式進行搜索。使用以下命令
linuxmi@linuxmi:~/www.$ awk '$4>81 && $6>0.4 {print $2}' linuxmi.txt
李華
方咪
圖片
上面的命令將在第四個字段上打印大于81的人名,在第六個字段上打印大于0.4的人名。并且只有兩個記錄滿足條件。
6、awk命令的特殊表達式:
有兩個特殊表達式,“ BEGIN”和“ END”:
開始:在處理數(shù)據(jù)之前執(zhí)行操作
結(jié)束:在處理完數(shù)據(jù)后執(zhí)行一項操作
linuxmi@linuxmi:~/www.$ awk 'BEGIN {print '處理已經(jīng)開始'}; {print $2}; END {print '處理已結(jié)束'}' linuxmi.txt
7、awk命令的有用的內(nèi)置變量:
awk命令具有各種有助于數(shù)據(jù)處理的變量:
變量說明
NF它給出了數(shù)據(jù)中字段的數(shù)量
NR給出當前記錄的編號
FILENAME顯示當前正在處理的文件的名稱
FS 和 OFS字段分隔符和輸出字段分隔符
RS 和 ORS分離記錄和輸出記錄分隔符
示例:
linuxmi@linuxmi:~/www.$ awk 'END{print '文件名是 ', FILENAME, '有', NF, '個字段和', NR, '個記錄'}' linuxmi.txt
我們使用“ END”,但是如果使用“ BEGIN”,則輸出將給出0個字段和0個記錄。
圖片
8、如何更改記錄分隔符:
記錄中的默認分隔符通常為空格;如果有逗號“,”或點“?!弊鳛樽侄畏指舴缓髮ⅰ?FS”選項與分隔符一起使用。
我們再來看一個文件,其中的數(shù)據(jù)字段之間用逗號“:”隔開:
linuxmi@linuxmi:~/www.$ cat linuxmi.txt
linuxmi@linuxmi:~/www.$ awk 'BEGIN {FS=':'}{print $2}' linuxmi.txt
由于文件的分隔符是冒號,但是“ awk”命令甚至對此類文件也很有用,因此只需使用“ FS”選項即可。
也可以使用“ -F”:
linuxmi@linuxmi:~/www.$ awk -F ':' '{print $2}' linuxmi.txt
默認記錄分隔符為“換行符”,并將記錄分隔符設(shè)置為“:”,請使用:
linuxmi@linuxmi:~/www.$ awk 'BEGIN{RS=':'}{print $1}' linuxmi.txt
圖片
9、Awk Actions:
Awk Actions是由“{}”括號括起來的小程序,它有多個用分號“;”分隔的語句。
使用“ awk”命令最常用的語句是“ print”語句。例如,要打印每條記錄的文本,請在引號中使用文本字符串:
linuxmi@linuxmi:~/www.$ awk '{print 'Linux迷 www.,' $2}' .txt
圖片
讓我們使用awk執(zhí)行簡單的求和運算:
linuxmi@linuxmi:~/www.$ awk '{sum += $4} END {printf '%d\n', sum}' .txt
圖片
10、創(chuàng)建awk程序:
讓我們從“ awk”編程開始,下面給出的編程只是在做乘法:
### Linux迷 www. ###
### Linux迷 www. ###
### Linux迷 www. ###
BEGIN {
i=2
while(j<4)
{
print 'The multiplication of 2 with' j ' is ' i*j;
j++
}
}
圖片
用“l(fā)inuxmi.awk”的名稱保存程序并運行,打開終端并輸入:
linuxmi@linuxmi:~/www.$ awk -f linuxmi.awk
圖片
總結(jié):
“awk”命令是一種方便的命令,用于處理,掃描文本文件的數(shù)據(jù),例如分隔文件的任何特定字段;我們使用“ awk”命令。它使從文本文件中以任何形式或模式搜索任何內(nèi)容變得更加容易。在本指南中,我們了解“ awk”命令的基本知識及其用法。“ awk”命令可驗證數(shù)據(jù),生成報告,甚至解析文件。使用簡單的命令“ awk”還可以使用戶編寫微型程序來更有效地處理數(shù)據(jù)。

關(guān)注我們

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多