使用 AWK 比較多個文件中的字段時的條件匹配

喬治傑克遜

我想了解如何/是否可以在比較 AIX 6.x 平台上 AWK 中不同文件的多個字段時包含某些條件。以下是我正在嘗試做的事情:

Employee.txt (last column is the **status**)
1|canoeing|Sam|Smith|Seatle|X
2|jogging|Barry|Jones|Seatle|
3|football|Garry|Brown|Houston|
4|jogging|George|Bla|LA|X
5|basketballCeline|Wood|Atlanta|
6|tennis|Jody|Ford|Chicago|

Car.txt (last column is **availability**)
100|football|red|1|Y
110|tennis|green|9|N
120|hockey|yellow|2|N
130|football|yellow|6|N
140|jogging|red|8|Y
150|canoeing|white|0|
    
awk -F"|" '
NR == FNR {
   empcar[$3]
   next
}
{
   print > ($1 in empcar ? "match.txt" : "no_match.txt")
}' Car.txt Employee.txt

我喜歡在打印匹配的記錄之前檢查員工狀態是否為活動(無 X)和汽車可用性(Y)是否相同。這是可行的嗎?

非常感謝,喬治

阿努巴瓦

以下是檢查兩個文件中其他條件的方法:

awk -F"|" '
NR==FNR {
   if ($NF == "Y")
      empcar[$(NF-1)]
   next
}
{
   print > ($NF != "X" && $1 in empcar ? "match.txt" : "no_match.txt")
}' Car.txt Employee.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章