Shell中的awk報告生成器

2021-09-22 18:28:50 字數 2704 閱讀 5790

一.awk 報告生成器

awk的處理機制:awk會逐行處理文字,支援在處理第一行之前做一些準備工作,以及在處理完最後一行做一些總結性質的工作,在命令格式上分別體現如下:

begin: 讀入第一行文字之前執行,一般用來初始化操作

:逐行處理,逐行讀入文字執行相應的處理,是最常見的編輯指令

end:處理完最後一行文字之後執行,一般用來輸出處理結果

二.awk的基本用法

1.awk 『』 passwd ##逐行讀取檔名稱

[root@server mnt]# awk '' passwd

passwd

passwd

passwd

passwd

passwd

passwd

passwd

passwd

passwd

passwd

2.awk 『』 passwd ##逐行輸出行號

[root@server mnt]# awk '' passwd12

3456

78910

3.awk 『』 passwd ##逐行輸出每一行的列數

[root@server mnt]# awk '' passwd11

1111

1111

4.awk -f : 『』 passwd ##-f :設定列分隔符為:並逐行讀取列號

[root@server mnt]# awk -f : '' passwd77

7777

7777

5.awk -f : 『begin』 passwd ##開始之前先輸出name,再讀取前兩列

[root@server mnt]# awk -f : 'begin' passwd

name

root x

bin x

daemon x

adm x

lp x

sync x

shutdown x

halt x

mail x

operator x

6.awk -f : 『beginend』 passwd ##先執行n=n++命令最後輸出n

[root@server mnt]# awk -f : 'beginend' passwd

10

7.awk -f : 『$1~/root/』 passwd ##讀取第一列以root開頭的行

[root@server mnt]# awk -f : '$1~/root/' passwd

root:x:0:0:root:/root:/bin/bash

[root@server mnt]# awk -f : '$1!~/root/' passwd ##讀取第一列不是以root開頭的行

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

8.用一條命令篩選出此虛擬機器的ip

[root@server mnt]# ifconfig eth0

eth0: flags=4163mtu 1500

inet 172.25.4.105 netmask 255.255.255.0 broadcast 172.25.4.255

inet6 fe80::5054:ff:fe00:40a prefixlen 64 scopeid 0x20ether 52:54:00:00:04:0a txqueuelen 1000 (ethernet)

rx packets 1730 bytes 159635 (155.8 kib)

rx errors 0 dropped 0 overruns 0 frame 0

tx packets 1071 bytes 155144 (151.5 kib)

tx errors 0 dropped 0 overruns 0 carrier 0 collisions 0

目的:篩選出172.25.4.105

[root@server mnt]# ifconfig eth0 | awk '/netmask/'

172.25.4.105

awk報告生成器

awk,aho,weinberger,kernighan gawk,gnu awk 我們在linux 上使用的 awk其實是 gawk 的鏈結檔案 gawk options program file program pattern 語句之間用分號分割 ps options f 指明輸入時用到的字段分...

awk(報告生成器)詳解

awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。awk a.k.a.aho,kernighan and weinberger awk的三...

Linux Shell程式設計 awk 報告生成器

awk 處理機制 awk 會逐行處理文字,支援在處理第一行之前做一些準備工作以及在處理完最後一行做一些總結性質的工作,在命令格式上分別體現如下 begin 讀入第一行文字之前執行,一般用來初始化操作 逐行處理,逐行讀入文字執行相應的處理,是最常見的編輯指令 end 處理完最後一行文字之後執行,一般用...