Linux AWK命令學習記錄

2021-09-27 02:54:51 字數 1709 閱讀 8928

awk介紹

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

awk語法

awk ''
常用方法

1.逐行讀取並切開處理取出第一部分

last -n 2

root pts/1 192.168.1.100 mon feb 9 11:41 - 18:30 (06:48)

dmtsai pts/1 192.168.1.100 mon feb 9 11:41 - 11:41 (00:00)

last -n 2 | awk ''

root

dmtsai

awk工作流程是這樣的:讀入有』\n』換行符分割的一條記錄,然後將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,1表示

第乙個域

,1表示第乙個域,

1表示第乙個

域,n表示第n個域。預設域分隔符是"空白鍵" 或 「[tab]鍵」,所以$1表示登入使用者,$3表示登入使用者ip,以此類推。

2.-f ':'指定分割符

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

root /bin/bash

daemon /bin/sh

bin /bin/sh

3.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

4.內建變數

argc               命令列引數個數

ar** 命令列引數排列

environ 支援佇列中系統環境變數的使用

filename awk瀏覽的檔名

fnr 瀏覽檔案的記錄數

fs 設定輸入域分隔符,等價於命令列 -f選項

nf 瀏覽記錄的域的個數

nr 已讀的記錄數

ofs 輸出域分隔符

ors 輸出記錄分隔符

rs 控制記錄分隔符

5.迴圈與陣列高階用法

awk -f ':' 'begin  ; end' /etc/passwd

0 root

1 daemon

2 bin

3 sys

4 sync

5 games

參考資料

官方使用者指南:

linux awk命令學習

awk是一種功能很強大的程式語言,用於linux系統下文字和資料的處理。本篇文章只學習一些awk相關的常規應用,而不對awk的語法進行討論,如果有需要,直接查資料就好了。1.檢視特定程序的pid,sh ps pid tty time cmd 414 00 00 00 rcs 417 00 00 00...

Linux awk 命令學習筆記

創始人 alfred aho,peter weinberger,和 brian kernighan 語法 awk options script var value file s awk options f scriptfile var value file s options常用引數說明 示例1,單...

Linux awk命令詳解

3.awk的執行過程 1 awk script的組成 awk script可以由一條或多條awk cmd組成,兩條awk cmd之間一般以newline分隔 awk cmd由兩部分組成 awk pattern awk script可以被分成多行書寫,必須確保整個awk script被單引號括起來。2...