AWK 入門簡明教程

2021-08-11 21:10:15 字數 2765 閱讀 5539

awk ' begin pattern  end file
awk 指令碼通常由3部分組成。 begin , end 和帶模式匹配選項的常見語句塊。這3個部分都是可 選項,在指令碼中可省略任意部分。

awk 指令碼包含在單引號之間

awk 'begin   end '

檔案的內容格式如下,在命令使用awk -f

readawk從輸入流(檔案,管道或者標準輸入)中讀取一行,然後儲存到記憶體中。

execute

所有的awk命令都依次在輸入上執行。預設情況下,awk會對每一行執行命令,我們可以通過提供模式限制這種行為。

repeat

處理過程不斷重複,直到到達檔案結尾。

執行 begin 語句塊中的語句。

從檔案或 stdin 中讀取一行,然後執行 pattern 。重複這個過程,直到檔案全部被讀取完畢。

當讀至輸入流末尾時,執行 end 語句塊。

變數名含義

nr表示記錄數量,在執行過程中對應於當前行號。

nf表示字段數量,在執行過程中對應於當前行的字段數。

$0這個變數包含執行過程中當前行的文字內容。

$1這個變數包含第乙個欄位的文字內容。

$2這個變數包含第二個欄位的文字內容。 範例

效果$ awk '' file列印每一行的第2和第3個字段

$ awk 'end' file統計檔案中的行數

借助選項-v,我們可以將外部值(並非來自 stdin )傳遞給 awk

$ var

=10000

$ echo | awk -v

variable

=$var

''10000

awk 通常預設讀取乙個檔案的所有行。如果只想讀取某一行,可以使用 getline 函式。有時候,我們需要從 begin 語句塊中讀取第一行。

語法:getline var

變數 var 就包含了特定行的內容。如果呼叫不帶引數的 getline ,我們可以用$0$1$2訪問文字行的內容。

$ seq 5 | awk 'begin  '

read ahead first

line12345

範例

效果awk 'nr < 5'行號小於5 的行

awk 'nr==1,nr==4'行號在1到5之間的行

awk '/linux/'包含樣式linux 的行(可以用正規表示式來指定模式)

awk '!/linux/'不包含包含模式為linux

預設的字段定界符是空格。我們也可以用 -f 「delimiter」 明確指定乙個定界符

$ awk -f: '' /etc/passwd

在 begin 語句塊中則可以用ofs="delimiter"設定輸出欄位的定界符。

將命令的輸出結果讀入變數 output 的語法如下

"command" | getline output ;

$ echo | awk ''

root:x:0

:0:root

:/root

:/bin/bash

通過使用 getline ,我們將外部shell命令的輸出讀入變數 cmdout 。

for(i=0; i<10; i++)

或者for(i in array)

範例效果

length(string)返回字串的長度。

index(string, search_string)返回 search_string 在 string 中出現的位置。

split(string, array, delimiter)用定界符生成乙個字串列表,並將該列表存 入陣列。

substr(string, start-position, end-position)在字串中用字元起止偏移 量生成子串,並返回該子串。

sub(regex, replacement_str, string)將正規表示式匹配到的第一處內容替換成 replacment_str 。

gsub(regex, replacment_str, string)和 sub() 類似。不過該函式會替換正規表示式匹配到的所有內容。

match(regex, string)檢查正規表示式是否能夠匹配字串。如果能夠匹配,返回 非0值;否則,返回0。

DuiLib入門簡明教程

2013 duilib入門教程彙總 2013 duilib入門簡明教程 前言 1 2013 duilib入門簡明教程 vs環境配置 2 2013 duilib入門簡明教程 第乙個程式 hello world 3 2013 duilib入門簡明教程 響應按鈕事件 4 2013 duilib入門簡明教程...

Linux 入門簡明教程

linux 不像windows有c d e等碟符的概念,所有檔案均在根目錄 下,通過路徑區分 bin bin 是 binaries 二進位制檔案 的縮寫,這個目錄存放著最經常使用的命令 boot 存放的是啟動 linux 時使用的一些核心檔案,包括一些連線檔案以及映象檔案 dev linux 的外部...

iBatis簡明教程及快速入門

和1.0相比,主要改動在xml配置檔案上,不過,只要有sql基礎,相信你不用教程也能看明白。下面我們看乙個最簡單的例子入門。我們先建乙個表account,包括欄位username,varchar 20 pk和password,varchar 20 隨便填入一些資料。然後編寫ibatis必須的配置檔案...