第七章 Shell文字處理三劍客之awk

2021-09-22 05:33:51 字數 1724 閱讀 7918

awk是乙個處理文字的程式語言工具,能用簡短的程式處理

標準輸入或檔案、資料排序、計算以及生成報表等等。

在linux系統下預設awk是gawk,它是awk的gnu版本。可以通過命令檢視應用的版本:ls -l /bin/awk

基本的命令語法:awk option 'pattern ' file

其中pattern表示awk在資料中查詢的內容,而action是在找到匹配內容時所執行的一系列命令。花括號用於根據特定的模式對一系列指令進行分組。

awk處理的工作方式與資料庫類似,支援對記錄和字段處理,這也是grep和sed不能實現的。

在awk中,預設的情況下將文字檔案中的一行視為乙個記錄,逐行放到記憶體中處理,而將一行中的某一部分作為記錄中的乙個字段。用1,2,3...數字的方式順序的表示行(記錄)中的不同字段。用$後跟數字,引用對應的字段,以逗號分隔,0表示整個行。

選項

描述

-f program-file

從檔案中讀取awk程式原始檔

-f fs

指定fs為輸入字段分隔符

-v var=value

變數賦值

--posix

相容posix正規表示式

--dump-variables=[file]

把awk命令時的全域性變數寫入檔案,

預設檔案是awkvars.out

--profile=[file]

格式化awk語句到檔案,預設是awkprof.out

常用模式有:

pattern

description

begin

給程式賦予初始狀態,先執行的工作

end程式結束之後執行的一些掃尾工作

/regular  expression/

為每個輸入記錄匹配正規表示式

pattern &&  pattern

邏輯and,滿足兩個模式

pattern || pattern

邏輯or,滿足其中乙個模式

! pattern

邏輯not,不滿足模式

pattern1, pattern2

範圍模式,匹配所有模式1的記錄,直到匹配到模式2

而動作呢,就是下面所講的print、流程控制、i/o語句等。

示例:

1)從檔案讀取awk程式處理檔案 1

2

3

4

5

6

# vi test.awk

# tail -n3 /etc/services |awk -f test.awk

48049/tcp

48128/tcp

49000/tcp

2)指定分隔符,列印指定字段  1

2

3

4

文字處理三劍客

文字處理三劍客 劍客一 grep 作用 行 過濾 用法 grep 正規表示式 檔案 路徑 grep e 擴充套件類正規表示式 檔案 路徑 劍客二 sed 用法 sed 選項 位址定位sed命令 檔案 路徑 sed 選項 正規表示式 sed命令 檔案 路徑 sed 選項 位址定位 正規表示式 sed命...

shell文字處理三劍客 grep

global search regular expression and print out the line 全面搜尋研究正規表示式並顯示出來 grep命令是一種強大的文字搜尋工具,根據使用者指定的 模式 對目標文字進行匹配檢查,列印匹配到的行,由正規表示式或者字元及基本文字字元所編寫的過濾條件 ...

Shell文字處理三劍客 grep sed awk

grep sed awk我們叫他們三劍客,掌握它們可以更好的運維,提公升工作效率,即使不是運維,對我們處理資料都是非常方便的 就很多資料處理來講,寫程式肯定是也能處理的,但是遠沒有已經存在特定功能的命令更高效,我們只需要操作命令即可。grep 簡介 grep常用的引數 usage grep abcd...