linux系統 awk 命令依據列字段進行數據匹配


1、創建測試數據

[root@linuxprobe test]# cat a.txt  ## 隨機創建測試數據
fr      dfg     rte
er      hdf     fgh
dg      fgd     rtw
er      ewr     scf
yt      ret     tgr

 

2、簡單用法

[root@linuxprobe test]# awk '$1 ~ /fr/ {print $0}' a.txt ## 第一列匹配fr,輸出完整列 fr dfg rte [root@linuxprobe test]# awk '$1 ~ /er/ {print $0}' a.txt ## 同上 er ewr scf [root@linuxprobe test]# awk '$2 ~ /fgd/ {print $0}' a.txt ## 同上 dg fgd rtw

 

3、提取特定列以特定字符開頭結尾的行

[root@linuxprobe test]# awk '$2 ~ /^f/ {print $0}' a.txt ## 提取第二列以f開頭的行 dg fgd rtw [root@linuxprobe test]# awk '$3 ~ /^r/ {print $0}' a.txt ## 提取第三列以r開頭的行 fr dfg rte dg fgd rtw [root@linuxprobe test]# awk '$1 ~ /r$/ {print $0}' a.txt ## 提取第一列以r結尾的行 fr dfg rte er hdf fgh er ewr scf
[root@linuxprobe test]# awk '$3 ~ /^r|^s/ {print $0}' a.txt ## 同時提取第三列以r開頭或者以s開頭的行 fr dfg rte dg fgd rtw er ewr scf [root@linuxprobe test]# awk '$3 ~ /^r/ {print $0}' a.txt ## 提取第三列以r開頭的行 fr dfg rte dg fgd rtw [root@linuxprobe test]# awk '$3 ~ /^r.*w$/ {print $0}' a.txt ##提取第三列以r開頭同時以w結尾的行 dg fgd rtw

 


免責聲明!

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



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