我有一個逗號分隔的文件象下面打印多個字段的多個模式匹配
0,category=a,type=b,value=1
1,category=c,type=b,.....,original_value=0
2,category=b,type=c,....,original_value=1,....,corrected_value=3
文件中的一個行可以包含 (1)僅「值」 (2)只有「original_value」 ( 3)'原始值'和'corrected_value'
這些值可以在任何列中。
我寫的以下awk命令只能在模式匹配後打印一個字段。
cat file | awk -F, 'BEGIN{OFS=","} /value/ { for (x=1;x<=NF;x++) if ($x~"value") {print $2,$3,$(x)} }' | sort -u
電流輸出:
category=a,type=b,value=1
category=b,type=c,corrected_value=3
category=b,type=c,original_value=1
category=c,type=b,original_value=0
如何打印如果兩個模式匹配發生線路的兩個字段(列)?在這種情況下,如果original_value和corrected_value都存在。
期望輸出:
category=a,type=b,value=1
category=b,type=c,original_value=1,corrected_value=3
category=c,type=b,original_value=0
猛砸版本:4.3.11