AWK文字處理工具(Linux)

2021-09-22 06:32:20 字數 1638 閱讀 4625

awk是什麼?與其它大多數unix命令不同的是,從名字上看,我們不可能知道awk的功能,因為awk是三個人名的縮寫,他們是:aho、(peter)weinberg和(brain)kernighan。正是這三個人創造了awk---乙個優秀的樣式掃瞄與處理工具。

awk語言最基本的功能是在檔案或字串中基於指定的規則瀏覽和抽取資訊。

有三種方式可呼叫awk:

命令列方式

將所有的awk命令插入乙個檔案,並利用chmod使awk檔案成為執行 -f scripts.awk

將所有的awk命令插入乙個單獨檔案,然後呼叫 #!/bin/awk -f

1.儲存awk輸出

從myfile檔案儲存到nwefile檔案中,這裡的$0表示所有內容

awk

'' myfile>newfile

2.使用tee,在輸出到檔案的同時輸出到螢幕(利用管道'|')

awk

'' myfile |tee newfile

3.awk 一般的語法形式

awk [-field-separator] '

commands

' input-file

(s)awk -f awk-script-file input-file

4.awk指令碼的一般形式

#awk-script-file.awk

begin

end

其中,fs與命令列的-f是同樣的,用來設定分隔符,在處理scv檔案時候需要把「,」作為分隔符

awk之所以成為一種優秀的程式語言的原因之一是它吸收了某些優秀的程式語言語言的許多優點。這些優點之一就是內建函式的使用,awk定義並支援了一系列的內建函式,由於這些函式的使用,使得awk提供的功能更為完善和強大。

內建字串函式:

gsub(r,s)           在整個$0中用s替代r

awk'

gsub(/name/,"xingming")

'temp

gsub(r,s,t) 在整個t中用s替代r

index(s,t) 返回s中字串t的第一位置,失敗返回0

awk'

begin

'temp 返回4

length(s) 返回s的長度

match(s,r) 測試s是否包含匹配r的字串,失敗返回0 也可以使用~/***/

awk'

$1=="j.lulu"

'temp 返回4

split

(s,a,fs) 在fs上將s分成序列a

awk'begin

else

if(表示式)

else

2.支援for迴圈

for(變數 in

陣列)

for

(變數;條件;表示式)

3.支援while迴圈

while

(表示式)

do

while(條件)

文字處理工具之awk

awk是乙個文字處理工具,也是一中指令碼語言。我常使用的就是下面的兩個功能。基本格式 awk f str beginend filename 參加下面的例項 failed to execute command lpush,key proc fast 109,value call addlottery...

Linux文字處理工具

linux中熟練的使用文字處理工具非常的重要,因為linux在設計的時候是採用一切皆檔案的哲學的,甚至連計算機中的配置也都使用偽檔案系統來表示,要查詢裡面的內容就是對檔案進行操作,所以學會使用檔案處理工具事半功倍。而在一切皆物件的windows中,因為物件封裝了所有的操作,包括顯示標準輸出的結果,使...

Linux 文字處理工具

tail f 執行tail f或tail f命令可以觀察檔案正在變化的內容 即跟蹤檔案的變化內容 檔案產生新內容時螢幕會顯示新增內容。seq n sort r head n 1 sort r命令能隨機排序。diff u file 1 file 2 file diff patch d file 1 f...