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...
雲計算cut命令集錦
高階文字處理命令 cutcut是乙個選取命令,它就是將一段資料經過分析,取出我們想要的。一般來說,選取資訊通常是針對 行 來進行分析的,並不是整篇資訊分析的 cut語法 cut 選 檔案 選項與引數 d 後面接分隔字元。與 f 一起使用 f 依據 d 的分隔字元將一段資訊分割成為數段,用 f 取出第...
DOS命令集錦
最常用命令上課裡我們已經學習了不少dos命令,但那只是很小的一部分,在這課將簡要介紹其它一些命令。首先,在這一節先回憶一下上課的內容,不要學過就忘啊,多使用幾次就能記住的。好,開始吧,看你學得怎麼樣。cd 改變當前目錄 sys 製作dos系統盤 copy 拷貝檔案 del 刪除檔案 deltree ...