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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux之awk

發(fā)布時間:2025/3/20 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux之awk 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

1.輸出設(shè)置

2.指定分隔符

3.匹配代碼塊


之前的文章介紹了字符,字符串處理 的“函數(shù)”,如grep,sed egrep等,現(xiàn)在介紹一個好用的數(shù)據(jù)處理工具,就是awk,awk 通常將一行分成若干個字段進(jìn)行處理,這里有別于grep 和sed處理按行進(jìn)行處理。

?之所以叫 AWK 是因為其取了三位創(chuàng)始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。AWK 是一種處理文本文件的語言,是一個強大的文本分析工具。簡單來說awk就是把文件逐行讀入,(**空格**,**制表符**)為默認(rèn)分隔符將每行切片,切開的部分再進(jìn)行各種分析處理
awk命令格式如下:
?

[root @localhost tmp]#awk '條件類型 1{動作1} 條件類型2 {動作2}...' filename awk [選項參數(shù)] 'script' var=value file(s) awk [選項參數(shù)] -f scriptfile var=value file(s) 選項參數(shù)說明:-F fs or --field-separator fs 指定輸入文件折分隔符,fs是一個字符串或者是一個正則表達(dá)式,如-F:。 -v var=value or --asign var=value 賦值一個用戶定義變量。 -f scripfile or --file scriptfile 從腳本文件中讀取awk命令。 -mf nnn and -mr nnn 對nnn值設(shè)置內(nèi)在限制,-mf選項限制分配給nnn的最大塊數(shù)目;-mr選項限制記錄的最大數(shù)目。這兩個功能是Bell實驗室版awk的擴(kuò)展功能,在標(biāo)準(zhǔn)awk中不適用。 -W compact or --compat, -W traditional or --traditional 在兼容模式下運行awk。所以gawk的行為和標(biāo)準(zhǔn)的awk完全一樣,所有的awk擴(kuò)展都被忽略。 -W copyleft or --copyleft, -W copyright or --copyright 打印簡短的版權(quán)信息。 -W help or --help, -W usage or --usage 打印全部awk選項和每個選項的簡短說明。 -W lint or --lint 打印不能向傳統(tǒng)unix平臺移植的結(jié)構(gòu)的警告。 -W lint-old or --lint-old 打印關(guān)于不能向傳統(tǒng)unix平臺移植的結(jié)構(gòu)的警告。 -W posix 打開兼容模式。但有以下限制,不識別:/x、函數(shù)關(guān)鍵字、func、換碼序列以及當(dāng)fs是一個空格時,將新行作為一個域分隔符;操作符**和**=不能代替^和^=;fflush無效。 -W re-interval or --re-inerval 允許間隔正則表達(dá)式的使用,參考(grep中的Posix字符類),如括號表達(dá)式[[:alpha:]]。 -W source program-text or --source program-text 使用program-text作為源代碼,可與-f命令混用。 -W version or --version 打印bug報告信息的版本。

1.輸出設(shè)置

awk 可以處理后續(xù)的文件,也可以處理前一個命令的standardoutput,主要處理每一行字段內(nèi)的數(shù)據(jù),默認(rèn)的字段分割符號是空格將或者tab鍵

對比發(fā)現(xiàn),使用awk指定顯示了第1列和第3列,指定賬號和IP之間以tab鍵隔開,也發(fā)現(xiàn)了一個規(guī)律:$1表示第1列,$3表示第3列,是的,每一行的每個字段都是有變量名稱的,那就是$1,$2,$3等等,而 $0 則表示一整行的數(shù)據(jù),第一行就是$0 ,即是root 192.168.1.109,所以awk的處理流程為:

?a.? 讀入第1行,并將第1行的數(shù)據(jù)填入到變量$0,$1,$2,$3...中

?b.? 根據(jù)條件類型的限制,判斷是否進(jìn)行后續(xù)的動作

?c.? 做完所有的工作和條件類型

?d.? 若還有后續(xù)的“行”的數(shù)據(jù),則重復(fù)執(zhí)行步驟a-c,直到處理完所有數(shù)據(jù)

awk 以行為一次操作的單元,而以字段為最小處理的單位,默認(rèn)字段的分割符號是空格或者tab鍵

疑惑:awk 如何得知數(shù)據(jù)有多少行多少列呢,此時 awk 的內(nèi)置變量就發(fā)揮作用了

NF? ?每一行 $0 擁有字段總數(shù)

NR? ?目前awk所處理的是第幾行的數(shù)據(jù)

FS? ? 目前的分割符號是什么,默認(rèn)的是空格

顯示出查找數(shù)據(jù)所在的行數(shù)和列數(shù)

[root @localhost tmp]#last -n 5 | awk '{print $1 "\t lines:" NR "\t columes: " NF }'

此外 awk 中還有一些常見的運算符

> ,>=? ? ? ?大于,大于等于

< ,<=? ? ? ?小于,小于等于

==? ? ? ? ? ? 等于

!=? ? ? ? ? ? ?不等于

/etc/passwd中以 : 為分割符號,其中第一個字段是賬號,第三個字段是UID,想要查找第三列小于10以下的數(shù)據(jù),并且列出第一列和第三列

[root @localhost ~]# cat /etc/passwd | awk '{FS=":"} $3 < 10 {print $1 "\t" $3 } '

發(fā)現(xiàn)第一行顯示的不正確,因為在處理第一行的時候,$1,$2默認(rèn)的還是以空格為分隔符的,因此雖然加了FS=:,還是從第二行開始生效的,怎么辦?

利用關(guān)鍵字 BEGIN?

[root @localhost ~]#cat /etc/passwd | awk 'BEGIN { FS=":"} $3 < 10 {print $1 "\t" $3 }'

此外,awk 還可以有計算功能,,有如下的數(shù)據(jù),如果計算每個人的Total總和呢?

[root @localhost ~]#cat pay.txt |awk 'NR==1{printf "%10s %10s %10s %10s %10s\n",$1,$2,$3,$4,"Total"} NR>=2{total=$2+$3+$4 printf "%10s %10d %10d %10d %10.2f\n",$1,$2,$3,$4,total}'

?這里對比下cat命令和awk命令輸出

awk '{print}' /proc/meminfo

2.指定分隔符

這里再詳細(xì)介紹下所謂指定分隔符的用法

[root@iv-yblfbjnlokl8j1o22bl7 ~]# awk ?'{print}' ?/etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin


輸出如上所示.指定分割符后輸出

awk ?-F ":" '{print $1,$3}' ?/etc/passwd root 0 bin 1 daemon 2

3.匹配代碼塊

awk '/MemFree/{print}' /proc/meminfo MemFree: 142320 kB awk '/MemFree/{printf "%d\n", $2}' /proc/meminfo 142272

//純字符匹配 ? !//純字符不匹配 ? ~//字段值匹配 ? ?!~//字段值不匹配 ? ~/a1|a2/字段值匹配a1或a2

測試系統(tǒng)資源的時候,常用的一個使用awk的命令

stress --vm-bytes $(awk '/MemAvailable/{printf "%d\n", $2 * 0.95;}' < /proc/meminfo)k --vm-keep -m 1

使用系統(tǒng)壓測工具stress,壓測系統(tǒng)內(nèi)存95%被占用的情況

參考:
https://www.cnblogs.com/sunshine-long/p/9295913.html
https://blog.csdn.net/guoer9973/article/details/44650729

總結(jié)

以上是生活随笔為你收集整理的linux之awk的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 一区二区三区国产精品 | 自拍偷拍999| 久久久中文 | 亚洲精品毛片av | 岛国av免费在线 | 精品国产乱码久久久久久预案 | 亚洲国产毛片 | 日批视频在线播放 | 免费在线看a | 欧美专区在线视频 | 国产欧美一区二区三区精华液好吗 | 韩国三级bd高清中字2021 | 中文字幕欧美一区 | 国产一精品一aⅴ一免费 | 少妇性l交大片 | 亚洲xx网 | 毛片aaaa| 综合久久国产 | 久久久久无码国产精品不卡 | 大学生三级中国dvd 日韩欧美一区二区区 | 日本 奴役 捆绑 受虐狂xxxx | 精品一区亚洲 | 波多野结衣在线观看一区二区 | 日本乱淫视频 | 国产资源在线观看 | 国产精华一区二区三区 | 国产激情久久久久久熟女老人av | 亚洲男人第一网站 | 亚洲AV无码成人精品区东京热 | 久久久免费观看视频 | 午夜生活片 | 美国av片| 9久久9毛片又大又硬又粗 | 一区二区三区四区亚洲 | 麻豆国产在线视频 | 人人看人人舔 | 日本一二三区视频 | 麻豆影视av | 91影音| 日韩一区二区免费看 | 欧美综合一区二区三区 | 华人永久免费 | 日本a视频 | 久久综合伊人 | 一级毛片黄色 | 中国极品少妇xxxxx | 欧美日韩免费观看一区=区三区 | 精品成在人线av无码免费看 | 姐姐你真棒插曲快来救救我电影 | 亚洲精品婷婷 | 一区二区中文字幕 | 影音先锋男人站 | 揄拍成人国产精品视频 | av导航网站 | 亚洲成年人在线 | 久久天天 | jizz免费观看| 韩国三级bd高清中字2021 | 三级a视频 | 法国少妇愉情理伦片 | 亚洲精品男人天堂 | 天天躁夜夜躁 | 一级一级黄色片 | 黑人巨大精品欧美一区二区 | 色婷婷狠狠18禁久久 | 青草视频在线观看免费 | 叼嘿视频在线免费观看 | 中国少妇初尝黑人巨大 | 国语精品 | 国产一二三区免费视频 | 每日av在线 | 中国一及毛片 | 四虎永久免费观看 | 91成人福利 | 大地资源影视在线播放观看高清视频 | 久久久老熟女一区二区三区91 | www.五月天com | 亚洲色成人网站www永久四虎 | 中国老熟妇自拍hd发布 | 欧美一级在线播放 | 久久久久久国产精品日本 | 久久五月天综合 | 日韩中文一区二区三区 | av有声小说一区二区三区 | 国产ts在线 | 制服 丝袜 激情 欧洲 亚洲 | 亚洲黑丝在线 | 凸凹人妻人人澡人人添 | 免费不卡的av | 国产精品jizz在线观看软件 | 欧美色图一区二区 | 亚洲第一色播 | 精品国模一区二区三区欧美 | 香蕉影院在线观看 | 日韩欧美在线观看视频 | 性插视频在线观看 | 日本激情在线 | 91日韩精品 | 欧美色图第一页 |