linux之awk命令解读
生活随笔
收集整理的這篇文章主要介紹了
linux之awk命令解读
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
之所以叫 AWK 是因為其取了三位創(chuàng)始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。AWK 是一種處理文本文件的語言,是一個強大的文本分析工具。簡單來說awk就是把文件逐行讀入,(**空格**,**制表符**)為默認分隔符將每行切片,切開的部分再進行各種分析處理
awk命令格式如下:
awk [選項參數(shù)] 'script' var=value file(s) awk [選項參數(shù)] -f scriptfile var=value file(s) 選項參數(shù)說明:-F fs or --field-separator fs 指定輸入文件折分隔符,fs是一個字符串或者是一個正則表達式,如-F:。 -v var=value or --asign var=value 賦值一個用戶定義變量。 -f scripfile or --file scriptfile 從腳本文件中讀取awk命令。 -mf nnn and -mr nnn 對nnn值設置內在限制,-mf選項限制分配給nnn的最大塊數(shù)目;-mr選項限制記錄的最大數(shù)目。這兩個功能是Bell實驗室版awk的擴展功能,在標準awk中不適用。 -W compact or --compat, -W traditional or --traditional 在兼容模式下運行awk。所以gawk的行為和標準的awk完全一樣,所有的awk擴展都被忽略。 -W copyleft or --copyleft, -W copyright or --copyright 打印簡短的版權信息。 -W help or --help, -W usage or --usage 打印全部awk選項和每個選項的簡短說明。 -W lint or --lint 打印不能向傳統(tǒng)unix平臺移植的結構的警告。 -W lint-old or --lint-old 打印關于不能向傳統(tǒng)unix平臺移植的結構的警告。 -W posix 打開兼容模式。但有以下限制,不識別:/x、函數(shù)關鍵字、func、換碼序列以及當fs是一個空格時,將新行作為一個域分隔符;操作符**和**=不能代替^和^=;fflush無效。 -W re-interval or --re-inerval 允許間隔正則表達式的使用,參考(grep中的Posix字符類),如括號表達式[[:alpha:]]。 -W source program-text or --source program-text 使用program-text作為源代碼,可與-f命令混用。 -W version or --version 打印bug報告信息的版本。這里具體來看看如何使用,結合實例進行介紹
1、輸出文件內容
這里以查詢內存信息為例,輸出文件功能通cat查詢功能
awk '{print}' /proc/meminfo2、輸出指定列
由于awk中將空格作為分隔符對每行數(shù)據(jù)進行切片,因此awk處理后的數(shù)據(jù)可以理解為處理成了一個二維表格,將數(shù)據(jù)對應的填充進去.
[root@iv-yblf*****o22bl7 ~]# awk '{print $1}' /proc/meminfo MemTotal: MemFree: MemAvailable: Buffers: Cached: SwapCached: Active: Inactive:可以看到輸出第一列中的數(shù)據(jù)
3、使用指定的分隔符
[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 24、匹配代碼塊
awk '/MemFree/{print}' /proc/meminfo MemFree: 142320 kB awk '/MemFree/{printf "%d\n", $2}' /proc/meminfo 142272//純字符匹配 !//純字符不匹配 ~//字段值匹配 !~//字段值不匹配 ~/a1|a2/字段值匹配a1或a2
參考:
https://www.cnblogs.com/sunshine-long/p/9295913.html
https://blog.csdn.net/guoer9973/article/details/44650729
總結
以上是生活随笔為你收集整理的linux之awk命令解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django之模型层和ORM
- 下一篇: 性能测试指标(一)