awk內建函式

2021-08-21 18:44:11 字數 1304 閱讀 8939

awk的內建函式split允許把乙個字串分隔為單詞並儲存在陣列中。可以自己定義域分隔符或者使用現在fs(域分隔符)的值。

split (string, array, field separator)

split (string, array) -->如果第三個引數沒有提供,awk就預設使用當前fs值。

time="12:34:56"

out=`echo $time | awk ''`

echo $out

# cat test.txt 

tom   2012-12-11 car 53000

john   2013-01-13 bike 41000

vivi 2013-01-18 car 42800

tom   2013-01-20 car 32500

john   2013-01-28 bike 63500

# awk '}end' test.txt

vivi 2800

tom2500

john4500

返回從起始位置起,指定長度之子字串;若未指定長度,則返回從起始位置到字串末尾的子字串。

substr(s,p)     返回字串s中從p開始的字尾部分

substr(s,p,n) 返回字串s中從p開始長度為n的字尾部分

awk -f ',' '' 表示是從第3個字段裡的第6個字元開始,一直到設定的分隔符","結束.

substr($3,10,8) 表示是從第3個字段裡的第10個字元開始,擷取8個字元結束.

substr($3,6) 表示是從第3個字段裡的第6個字元開始,一直到結尾

length函式返回沒有引數的字串的長度。length函式返回整個記錄中的字元數。

echo "123" | awk ''   輸出 3

awk -f ':' '' 輸出文字每行的長度

gsub函式則使得在所有正規表示式被匹配的時候都發生替換。

gsub(regular expression, subsitution string, target string);

簡稱 gsub(r,s,t)。

awk '$0 ~ /abc/ ' abc.txt 

awk '$1 ~ /2018/ ' abc.txt

AWK學習筆記八 AWK內建函式

執行作業系統命令然後返回給awk函式,system函式執行string指定的命令,返回執行命令返回的狀態作為它的值。比如下面 段 end系統管理員在awk程式完成處理輸入之後,會傳送email。awk程式被廣泛用來處理含有時間戳的log檔案,表明什麼時候乙個log記錄被寫入。systime 這個函式...

awk內建變數和函式

幾乎內建變數每次用到都要查一下,乾脆統計下發上來供以後查詢 內建變數 argc 命令列引數個數 argv 命令列引數排列 environ 支援佇列中系統環境變數的使用 filename awk瀏覽的檔名 fnr 瀏覽檔案的記錄數 fs 設定輸入域分隔符,等價於命令列 f選項 nf 瀏覽記錄的域個數 ...

awk 內建函式列表

1.gsub 要在整個記錄中替換乙個字串為另乙個,使用正規表示式格式,目標模式 替換模式 例如改變學生序號4842到4899 awk gsub 4842 4899 grade.txt j.troll 07 99 4899 brown 3 12 26 26 2.index 查詢字串s中t出現的第一位置...