awk命令集錦

2021-08-20 17:50:35 字數 2302 閱讀 2560

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

1、假設last -n 5的輸出如下:

[root@localhost ~]#last -n 5

root     pts/0        192.168.123.1    wed dec 28 01:55   still logged in   

reboot   system boot  2.6.32-573.el6.x tue dec 27 04:25 - 03:11  (22:46)    

root     pts/1        192.168.123.1    tue dec 27 02:00 - 02:00  (00:00)    

root     pts/1        192.168.123.1    tue dec 27 01:59 - 02:00  (00:00)    

root     pts/0        192.168.123.1    tue dec 27 01:59 - down   (00:16)

2、只顯示五個最近登入的賬號:

[root@localhost ~]#last -n 5 | awk ''

root

reboot

root

root

root

awk工作流程是這樣的:讀入有'\n'換行符分割的一條記錄,然後將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,$1表示第乙個域,$n表示第n個域。預設域分隔符是"空白鍵" 或 "[tab]鍵",所以$1表示登入使用者,$3表示登入使用者ip,以此類推

3、顯示/etc/passwd的賬戶:

[root@localhost ~]#cat /etc/passwd |awk  -f ':'  ''

root

bindaemon

admlp

這種是awk+action的示例,每行都會執行action。

-f指定域分隔符為':'

4、顯示/etc/passwd的賬戶和賬戶對應的shell,而賬戶與shell之間以tab鍵分割

[root@localhost ~]#cat /etc/passwd |awk  -f ':'  ''

root    /bin/bash

bin     /sbin/nologin

daemon  /sbin/nologin

adm     /sbin/nologin

lp      /sbin/nologin

5、如果只是顯示/etc/passwd的賬戶和賬戶對應的shell,而賬戶與shell之間以逗號分割,而且在所有行新增列名name,shell,在最後一行新增"blue,/bin/nosh"。

cat /etc/passwd |awk  -f ':'  'begin   end '

cat /etc/passwd | awk -f ':' 'begin end '

name,shell

root,/bin/bash

daemon,/bin/sh

bin,/bin/sh

sys,/bin/sh

blue,/bin/nosh

awk工作流程是這樣的:先執行begin,然後讀取檔案,讀入有/n換行符分割的一條記錄,然後將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,$1表示第乙個域,$n表示第n個域,隨後開始執行模式所對應的動作action。接著開始讀入第二條記錄••••••直到所有的記錄都讀完,最後執行end操作。

搜尋/etc/passwd有root關鍵字的所有行

awk  -f:  '/root/'  /etc/passwd

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

這種是pattern的使用示例,匹配了pattern(這裡是root)的行才會執行action(沒有指定action,預設輸出每行的內容)。

搜尋支援正則,例如找root開頭的: awk -f:  '/^root/'  /etc/passwd

搜尋/etc/passwd有root關鍵字的所有行,並顯示對應的shell

awk  -f

':'  '/root/'  /etc/passwd

/bin/bash

這裡指定了action

雲計算awk命令集錦

awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。1 假設last n 5的輸出如下 root localhost last n 5 ro...

DOS命令集錦

最常用命令上課裡我們已經學習了不少dos命令,但那只是很小的一部分,在這課將簡要介紹其它一些命令。首先,在這一節先回憶一下上課的內容,不要學過就忘啊,多使用幾次就能記住的。好,開始吧,看你學得怎麼樣。cd 改變當前目錄 sys 製作dos系統盤 copy 拷貝檔案 del 刪除檔案 deltree ...

mysql命令集錦

測試環境 mysql 5.0.45 注 可以在mysql中通過mysql select version 來檢視資料庫版本 整理 leo 一 連線mysql。格式 mysql h主機位址 u使用者名稱 p使用者密碼 1 連線到本機上的mysql。首先開啟dos視窗,然後進入目錄mysql bin,再鍵...