日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

每天学一点儿shell:Linux三剑客——awk命令

發布時間:2025/3/19 linux 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 每天学一点儿shell:Linux三剑客——awk命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • awk的命令格式
    • 命令格式
    • 常用命令選項
    • awk內置命令
  • awk的用法實例
    • 獲取內容的第2列
    • 獲取每一行的行數
  • 內置函數
    • 算數函數
    • 字符串內置函數
    • 時間內置函數

awk的命令格式

命令格式

awk 'BEGIN{ commands } pattern{ commands } END{ commands }'

常用命令選項

命令選項釋義
-F fsfs 只當輸入分隔符,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]# ls -lh 總用量 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]# ls -lh|awk '{print $2}' 8.0K 1 1 1

獲取每一行的行數

[root@hadoop-master test-awk]# ls -lh|awk '{print NR " " $1}' 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命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。