語法格式:awk [選項] '指令' 操作文件
常用選項:-F 指定分隔符,分隔符用""引起來
-v:var=value在awk程序開始之前指定一個值valu給變量var,這些變量值用于awk程序的BEGIN快 -f:后面跟一個保存了awk程序的文件,代替在命令行指定awk程序實例1:在命令行直接輸入awk指令
awk '{print}' 1.txt #逐行讀取文件1.txt內容并打印
awk '{print $0}' 1.txt #逐行讀取文件內容,并打印該行,$0保存的是當前行的內容
awk '{print "hello"}' 1.txt #逐行讀取1.txt文件內容,每行結束后打印一個hello,文件1.txt有多少行就打印多少個hello
awk '{print $1}' 1.txt #打印1.txt的第一列內容,在不指定分割符的情況下,awk默認使用空白做分割符
awk -F ":" '{print $1}' /etc/passwd #以":"為分隔符打印/etc/passwd文件的第一例內容
實例2:將awk指令寫入文件,通過-f選項調用
vim awkscriptBEGIN {FS=":"}{print $1}awk -f awkscript /etc/passwd #通過調用awk指令文件來執行awk命令
實例3:awk的BEGIN塊和END塊
BEGIN用于初始化FS變量(列分隔符),打印標題,或者初始化后需要在程序中調用的全局變量
END用于執行最后的運算或者打印最終的輸出結果
END塊和BEGIN不是必須的
實例4:在awk中使用正則匹配,正則表達式必須要放在//中
awk '/123/{print}' 1.txt #打印1.txt中匹配123的那一行內容
awk -F ":" '/123/{print $2}' 1.txt #以":"為分隔符打印1.txt中匹配123的那一行中,第二列的內容
awk -F ":" '$1 ~ /root/{print $2}' /etc/passwd #打印/etc/passwd中,第一列匹配root的行其第二列的內容 ~表示匹配
新聞熱點
疑難解答