linux系統 awk 命令依據列欄位進行資料匹配
阿新 • • 發佈:2020-10-09
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