生活随笔
收集整理的這篇文章主要介紹了
每天学一点儿shell:Linux三剑客——awk命令
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
awk的命令格式
命令格式
awk
'BEGIN{ commands } pattern{ commands } END{ commands }'
常用命令選項
命令選項釋義 -F fs fs 只當輸入分隔符,fs可以使字符串或者正則表達式 -v var=value 賦值一個用戶定義變量,將外部變量傳遞給awk -f scriptfile 從腳本文件中讀取awk命令
awk內置命令
內置命令釋義 $n 當前記錄的第n個字段,比如n為1表示第一個字段,n為2表示第二個字段。 $0 這個變量包含執行過程中當前行的文本內容。 ARGC 命令行參數的數目。 ARGIND 命令行中當前文件的位置(從0開始算)。 ARGV 包含命令行參數的數組。 CONVFMT 數字轉換格式(默認值為%.6g)。 ENVIRON 環境變量關聯數組。 ERRNO 最后一個系統錯誤的描述。 FIELDWIDTHS 字段寬度列表(用空格鍵分隔)。 FILENAME 當前輸入文件的名。 NR 表示記錄數,在執行過程中對應于當前的行號 FNR 同NR :,但相對于當前文件。 FS 字段分隔符(默認是任何空格)。 IGNORECASE 如果為真,則進行忽略大小寫的匹配。 NF 表示字段數,在執行過程中對應于當前的字段數。 print $NF答應一行中最后一個字段 OFMT 數字的輸出格式(默認值是%.6g)。 OFS 輸出字段分隔符(默認值是一個空格)。 ORS 輸出記錄分隔符(默認值是一個換行符)。 RS 記錄分隔符(默認是一個換行符)。 RSTART 由match函數所匹配的字符串的第一個位置。 RLENGTH 由match函數所匹配的字符串的長度。 SUBSEP 數組下標分隔符(默認值是34)。
awk的用法實例
獲取內容的第2列
[root@hadoop-master test-awk]
總用量 8
. 0K
- rwxr
- xr
- x
. 1 root root 60 9月 24 23:06 file2
. text
- rw
- r-
- r-
- . 1 root root 0 9月 24 23:04 filename2
- rwxr
- xr
- x
. 1 root root 45 9月 24 23:06 file
. txt
[root@hadoop-master test-awk]
8
. 0K
1
1
1
獲取每一行的行數
[root@hadoop-master test-awk]
1 總用量
2
- rwxr
- xr
- x
.
3
- rw
- r-
- r-
- .
4
- rwxr
- xr
- x
.
內置函數
算數函數
格式解釋 atan2( y, x ) 返回 y/x 的反正切。 cos( x ) 返回 x 的余弦;x 是弧度。 sin( x ) 返回 x 的正弦;x 是弧度。 exp( x ) 返回 x 冪函數。 log( x ) 返回 x 的自然對數。 sqrt( x ) 返回 x 平方根。 int( x ) 返回 x 的截斷至整數的值。 rand( ) 返回任意數字 n,其中 0 <= n < 1。 srand( [expr] ) 將 rand 函數的種子值設置為 Expr 參數的值,或如果省略 Expr 參數則使用某天的時間。返回先前的種子值。
字符串內置函數
格式解釋 gsub( Ere, Repl, [ In ] ) 除了正則表達式所有具體值被替代這點,它和 sub 函數完全一樣地執行。 sub( Ere, Repl, [ In ] ) 用 Repl 參數指定的字符串替換 In 參數指定的字符串中的由 Ere 參數指定的擴展正則表達式的第一個具體值。sub 函數返回替換的數量。出現在 Repl 參數指定的字符串中的 &(和符號)由 In 參數指定的與 Ere 參數的指定的擴展正則表達式匹配的字符串替換。如果未指定 In 參數,缺省值是整個記錄($0 記錄變量)。 index( String1, String2 ) 在由 String1 參數指定的字符串(其中有出現 String2 指定的參數)中,返回位置,從 1 開始編號。如果 String2 參數不在 String1 參數中出現,則返回 0(零)。 length [(String)] 返回 String 參數指定的字符串的長度(字符形式)。如果未給出 String 參數,則返回整個記錄的長度($0 記錄變量)。 blength [(String)] 返回 String 參數指定的字符串的長度(以字節為單位)。如果未給出 String 參數,則返回整個記錄的長度($0 記錄變量)。 substr( String, M, [ N ] ) 返回具有 N 參數指定的字符數量子串。子串從 String 參數指定的字符串取得,其字符以 M 參數指定的位置開始。M 參數指定為將 String 參數中的第一個字符作為編號 1。如果未指定 N 參數,則子串的長度將是 M 參數指定的位置到 String 參數的末尾 的長度。 match( String, Ere ) 在 String 參數指定的字符串(Ere 參數指定的擴展正則表達式出現在其中)中返回位置(字符形式),從 1 開始編號,或如果 Ere 參數不出現,則返回 0(零)。RSTART 特殊變量設置為返回值。RLENGTH 特殊變量設置為匹配的字符串的長度,或如果未找到任何匹配,則設置為 -1(負一)。 tolower( String ) 返回 String 參數指定的字符串,字符串中每個大寫字符將更改為小寫。大寫和小寫的映射由當前語言環境的 LC_CTYPE 范疇定義。 toupper( String ) 返回 String 參數指定的字符串,字符串中每個小寫字符將更改為大寫。大寫和小寫的映射由當前語言環境的 LC_CTYPE 范疇定義。 sprintf(Format, Expr, Expr, . . . ) 根據 Format 參數指定的 printf 子例程格式字符串來格式化 Expr 參數指定的表達式并返回最后生成的字符串。
時間內置函數
格式解釋 mktime( YYYY MM dd HH MM ss[ DST]) 生成時間格式 strftime([format [, timestamp]]) 格式化時間輸出,將時間戳轉為時間字符串 具體格式,見下表. systime() 得到時間戳,返回從1970年1月1日開始到當前時間(不計閏年)的整秒數
總結
以上是生活随笔 為你收集整理的每天学一点儿shell:Linux三剑客——awk命令 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。