awk簡單用法-(1)


一、awk基本操作


awk指定多個分割符,分隔符中有:和空格,還有:和空格的組合,這個時候需要指定多個分隔符 -F'[ :]+',[ :]表示分隔符為:和空格,一個或者多個+號表示空格和:的組合也為一個分隔符

打印倒數第一列,以空格和:and空格 “:”的組合為分隔符
[root@VM_0_84_centos ~]# cat aaa |awk -F'[: ]+' '{print $NF}'
number
100
0
#打印倒數第二列,以空格和:and空格 “:”的組合為分隔符
[root@VM_0_84_centos ~]# cat aaa |awk -F'[: ]+' '{print $(NF-1)}'
age
27
30

假如分隔符為空格,打印第一列    $1為第一列的數據   $0打印整個文件的內容

cat aaa |awk '{print $1}'

二、awk的NR、NF內置變量的應用

 NF變量的使用:打印文件的字段數,NF指的是字段的數量,有時候由於文本數據量太大,而且字段切分不規則,會導致使用 '{print $n}'取值會出現錯誤,建議使用NF來取響應的字段

[root@VM_0_84_centos ~]# cat aaa 
name: age  number
ghd  27  100
gym  30  0
[root@VM_0_84_centos ~]# cat aaa |awk '{print NF}'
3
3
3
[root@VM_0_84_centos ~]# cat aaa |awk '{print $NF}'
number
100
0
[root@VM_0_84_centos ~]# cat aaa |awk '{print $(NF-2)}'
name:
ghd
gym
[root@VM_0_84_centos ~]# cat aaa |awk '{print NF}'
View Code

 NR變量:打印文件的行的內容

#打印文件的第二行內容
[root@VM_0_84_centos ~]# cat test.txt |awk 'NR==2{print $0}'
ghd  27  100

#打印文件的第二行第一個列(字段)的內容
[root@VM_0_84_centos ~]# cat test.txt |awk 'NR==2{print $1}'
ghd

#打印大於第一行小於第三行的所屬行的所有字段,$n為字段數(列)
cat test.txt |awk 'NR>1&&NR<3{print $0}'
ghd  27  100

#不打印第二行的其它行的所有字段
[root@VM_0_84_centos ~]# cat test.txt |awk 'NR!=2{print $0}'
name: age  number
gym  30  0
View Code

練習:

打印文件所有內容,並顯示文件內容所屬行和字段

 cat test.txt |awk -F'[ :]+' '{print NR,NF,$0}'
1 3 name: age  number
2 3 ghd  27  100
3 3 gym  30  0
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM