linux文字處理之awk

2021-08-26 20:53:34 字數 1383 閱讀 4930

最簡單地說, awk 是一種用於處理文字的程式語言工具。awk 在很多方面類似於 shell 程式語言,儘管 awk 具有完全屬於其本身的語法。它的設計思想**於 snobol4 、sed 、marc rochkind設計的有效性語言、語言工具 yacc 和 lex ,當然還從 c 語言中獲取了一些優秀的思想。在最初創造 awk 時,其目的是用於文字處理,並且這種語言的基礎是,只要在輸入資料中有模式匹配,就執行一系列指令。該實用工具掃瞄檔案中的每一行,查詢與命令列中所給定 內容相匹配的模式。如果發現匹配內容,則進行下乙個程式設計步驟。如果找不到匹配內容,則繼續處理下一行

awk正規表示式

awk '' file                ###統計行列並在每一行,nr:行號 nf:列 filename:檔名

awk 'begin' file ###初始化**塊(先處理,在處理其他),只能出現一次

awk 'end' file ###結束**塊(處理完結果後在處理),只能出現一次

awk -f ":" '/\/end' file ###找出可登陸的使用者,並統計出個數

awk -f ":" '/^root/' file ###找出以root開頭的並列印出來

awk -f ":" '/^a|nologin$/' file ###找出以a開頭的或者nologin結尾的,列印出第1,7列

awk -f ":" '$6~/bin$/' file ###以冒號為分隔符,找出第6列為bin結束的行,列印出其第1,7列

awk -f ":" '$6!~/bin$/' file ###以冒號為分隔符,找出第6列不是bin結束的行,列印出其第1,7列

awk 'nr==2,nr==5' file ###顯示出2,5行

awk '/a/,/b/' file ###匹配出有a字元的行到有b字元的行,並列印出來

awk的應用

顯示當前系統可登陸使用者的name和id

awk -f ":" 'begin/\=3&&nr<=5' /etc/passwd

顯示文字中6和8的內容

awk -f ":" 'nr==6||nr==8' /etc/passwd

抓取ip位址

ifconfig eth0 |awk 'nr==2'

求和1+2..+100

seq 100 >westos

awk '$1<=100;a++;sum=sum+a;' westos|tail -1

awk '$1<=100end' westos

文字處理awk

awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。實際上awk確實有自己的程式語言 樣式掃瞄和處理語言。awk 1.命令列方式 awk f...

awk文字處理

awk是一種程式語言,用於在linux環境中對文字資料進行處理 二 awk的兩種語法格式 awk options conmmand filenames awk options f awk script file filenames f 定義輸入字段分隔符,預設分隔符是空格或製表符 命令begin e...

awk文字處理

awk文字處理 基於模式匹配檢查輸入文字,逐行處理並輸出 通常用在shell指令碼中,獲取指定的資料 單獨用時,可對文字資料做統計 一 語法格式 格式1 命令 awk 選項 條件 格式2 awk 選項 條件 檔案.若有多條語句,可用分號分隔 print是最常用的指令 awk f etc passwd...