gpt4 book ai didi

linux - 比较每行的多个列

转载 作者:太空宇宙 更新时间:2023-11-04 10:13:02 26 4
gpt4 key购买 nike

使用 csv 文件,我想比较多个列以检查所有值是否相同。

第一行是标题第一列是标签对于我只放置 8 列的示例,常量值应该从第 2 列到末尾(可以是 100 列)。

目的是检查所有值是否相同。如果不是,则报告

输入文件

Number,V2 1563,V03-1555,V4 - 294,V-05 1580,V6-1561,V7-1562,V05-1601,V9-1587
Code,4.1.06,4.1.03,4.1.06,4.1.06,4.1.06,4.1.06,4.1.06,4.1.06
Host Id,b90c27,b90c13,3.30E+65,b90c46,b90c21,b90c1f,b88a63,b90c49
SR,SR_2_MS,SR_2_MS,SR_4_MS,SR_2_MS,SR_2_MS,SR_2_MS,SR_2_MS,SR_2_MS

期望的输出

Bad code in V03-1555
Bad SR in V4 - 294

感谢您的支持

最佳答案

awk 助您一臂之力!

我即兴创作了一点。我们如何知道哪些值是正确的,哪些不是?大众投票,计算出现次数并假设多数是正确的。作为一个附带的好处,如果所有值都与您的“主机 ID”行中的值不同,则不会报告任何内容

$ awk -F, 'NR==1 {split($0,h); next} 
{delete r;
for(i=2;i<=NF;i++) {r[$i]++; idx[$i]=i}
max=0;
for(k in r) if(max<r[k]) max=r[k];
if(length(r)>1)
for(k in r)
if(r[k]!=max)
print "Bad " $1 " in " h[idx[k]] " -> " k}' file

返回

Bad Code in V03-1555 -> 4.1.03
Bad SR in V4 - 294 -> SR_4_MS

您可以删除打印的值,我将其用于验证。

关于linux - 比较每行的多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47804645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com