很直觀的awk使用案例

2021-10-04 20:25:28 字數 1904 閱讀 6475

awk是linux文字處理三劍客之一,在grep,sed,awk中,awk功能最為強大,使用最為靈活,因為其本身也屬於一種程式語言,可以通過程式設計實現各種需要的文字處理需求。

當然,awk使用也較為複雜,這裡用直觀的例子來介紹awk的日常使用。

步驟1:

[root@centos8 ~]# ifconfig ens33 | awk 'nr==2'

inet 192.168.0.208 netmask 255.255.255.0 broadcast 192.168.0.255

說明:awk 'nr==2'是列印第二行的意思,相當於sed –n 2p,當然這裡使用sed更加方便,只是為了說明awk的用法

步驟2:

[root@centos8 ~]# ifconfig ens33 | awk 'nr==2' | awk ''

192.168.0.208

[root@centos8 ~]# ifconfig ens33 | awk 'nr==2' | awk ''

192.168.0.208 255.255.255.0

步驟3:

ifconfig ens33 | awk 'nr==2' | awk 'begin  '

192.168.0.208---255.255.255.0

說明:這裡的begin{}是對awk的預設引數進行設定,ofs是awk輸出資訊的預設分隔符,這裡="---"就是把輸出分隔符設定為---

步驟1:

tcp6 0 0 :::8080 :::* listen 1505/httpd說明:awk '/httpd/'相當於grep httpd,獲得包含httpd的一行

步驟2:

:::8080說明:列印包含httpd的行的第4列

步驟3:

8080說明:grep –o是指顯示過濾出的資料,只留下數字,其他的不要,星代表可以匹配多位數字。

[root@centos8 etc]# ls -l *.conf

-rw-r--r--. 1 root root 1085 may 10 2019 chrony.conf

-rw-r--r--. 1 root root 117 nov 9 01:10 dracut.conf

-rw-r--r--. 1 root root 38 may 11 2019 fuse.conf

-rw-r--r--. 1 root root 9 sep 10 2018 host.conf

-rw-r--r--. 1 root root 4849 nov 9 04:56 idmapd.conf

-rw-r--r--. 1 root root 7916 mar 29 11:30 kdump.conf

省略。。。

步驟2:使用awk抓取第5列並進行相加,然後列印出來

[root@centos8 etc]# ls -l *.conf |awk 'begin   end'

檔案總大小是41985位元組

說明:

,因為awk本身支援程式設計,這裡則是定義了乙個變數size,然後size則是對第5列的累加。

' 這裡雙引號裡的內容是自己加的,size是經過計算後的變數結果。

awk 使用案例

awk 語言的最基本功能是在檔案或字串中基於指定規則瀏覽和抽取資訊,awk 抽取資訊後,才能進行其他文字操作,完整的 awk 指令碼通常用來格式化文字檔案中的資訊 語法格式 awk 選項 指令 操作檔案 常用選項 f 指定分隔符,分隔符用 引起來 不加任何引數預設為空格分隔 定位行號 使用nr ro...

awk 使用高階及使用案例

chen localhost in shell 18 36 13 awk v num 3 f passwd33 3333 注意 awk中呼叫定義的變數不需要加 chen localhost in shell 18 37 04 awk v num 3 f passwd01 23561.3.1.概述 1...

AWK的10個經典案例

awk是linux系統下乙個處理文字的程式語言工具,能用簡短的程式處理標準輸入或檔案 資料排序 計算以及生成報表等等,應用非常廣泛。基本的命令語法 awk option pattern file 下面根據工作經驗總結了10個實用的awk案例,面試筆試題也經常會出,供朋友們參考學習。1 分析訪問日誌 ...