awk 自帶函式用法

2021-09-20 19:52:20 字數 2211 閱讀 9107

一、split 初始化和型別強制 

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

格式:split (string, array, field separator)

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

例子:例1:替換分隔符 1

2

3

time="12:34:56"

out=`echo $time| awk''`

echo $out

例2:計算指定範圍內的和(計算每個人1月份的工資之和)

12

3

4

5

6

7

8

9

10

[root@test ~]# 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

[root@test ~]# awk'}end'test.txt

vivi         42800

john   104500

tom    32500

二、substr 擷取字串

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

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

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

例子:

1

2

[root@test ~]# echo"123"| awk''

1

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

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

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

三、length 字串長度

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

2

[root@test ~]# echo"123"| awk''

3

gsub函式則使得在所有正規表示式被匹配的時候都發生替換。gsub(regular expression, subsitution string, target string);簡稱 gsub(r,s,t)。

舉例:把乙個檔案裡面所有包含 abc 的行裡面的 abc 替換成 def,然後輸出第一列和第三列

1

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

awk自帶變數彙總

awk太強大了,眾人皆知,不再強調。將awk自帶變數列出來,以備不時之需。fs field separator 不用說了,域分隔符變數 nr number of record 當前record的編號,從1開始。通常情況下awk認為每行是一條record,這樣的話實際就成了行號,但是awk也可以多行記...

C 自帶sort函式的用法

c sort 函式的用法 近來看了c 標準庫這本書,學到了很多,就把這其中的一點c sort 函式的用法寫下來和大家分享吧!一 為什麼要用c 標準庫里的排序函式 sort 函式是c 一種排序方法之一,學會了這種方法也打消我學習c 以來使用的氣泡排序和選擇排序所帶來的執行效率不高的問題!因為它使用的排...

awk用法小結

awk 用法 awk pattern 變數名 含義 argc 命令列變元個數 argv 命令列變元陣列 filename 當前輸入檔名 fnr 當前檔案中的記錄號 fs 輸入域分隔符,預設為乙個空格 rs 輸入記錄分隔符 nf 當前記錄裡域個數 nr 到目前為止記錄數 ofs 輸出域分隔符 ors ...