gpt4 book ai didi

linux - awk匹配前两列的值并在空白字段中打印

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

我有一个如下所示的 csv 文件:

2212,A1,  
2212,A1,128
2307,B1,
2307,B1,107

如果前 2 列的值相同,我如何复制第 3 列的值来代替第 3 列中的缺失值。例如前两行的前两列相同,因此它应该自动在第一行第三列的缺失位置打印第二行第三列的值。

预期输出:

2212,A1,128  
2212,A1,128
2307,B1,107
2307,B1,107

请帮忙,因为我什至想不出解决方案,而且我的文件中有数百万个这样的值..

最佳答案

如果您首先以相反的顺序排序文件,则包含数据的行位于空行之前:

$ sort -r file
2307,B1,107
2307,B1,
2212,A1,128
2212,A1,

然后使用下面的awk来处理sort的输出:

$ sort -r file | awk 'NR>1 && match(prev,$0) {$0=prev} {prev=$0} 1'
2307,B1,107
2307,B1,107
2212,A1,128
2212,A1,128

关于linux - awk匹配前两列的值并在空白字段中打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39929616/

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