gpt4 book ai didi

linux - 保留第一个重复项并使用 Awk 将其余部分替换为空白单元格

转载 作者:太空宇宙 更新时间:2023-11-04 04:53:35 24 4
gpt4 key购买 nike

我有一个 tsv 文件,其中有 2 列,第二列中有重复项。我想做的是保留第一个重复值并将其余值替换为空白。例如

原始tsv:

ahah.asd   aha
ahsjd.asd aha
asdd.asda aha
ajd.asd aha
asdfk.lo abb
hasd.pou abb
hasd.asd jjj
asidh.09 kkk
asdhs.97 kkk

预期输出:

ahah.asd   aha
ahsjd.asd
asdd.asda
ajd.asd
asdfk.lo abb
hasd.pou
hasd.asd jjj
asidh.09 kkk
asdhs.97

除此之外,我还想添加一个递增的列,直到在第 2 列中看到重复项为止。例如:

ahah.asd   aha   1
ahsjd.asd 2
asdd.asda 3
ajd.asd 4
asdfk.lo abb 1
hasd.pou 2
hasd.asd jjj 1
asidh.09 kkk 1
asdhs.97 2

这可能吗?我想使用 awk...

谢谢

最佳答案

$ awk 'BEGIN{FS=OFS="\t"} {print $1, (cnt[$2]++ ? "" : $2), cnt[$2]}' file
ahah.asd aha 1
ahsjd.asd 2
asdd.asda 3
ajd.asd 4
asdfk.lo abb 1
hasd.pou 2
hasd.asd jjj 1
asidh.09 kkk 1
asdhs.97 2

关于linux - 保留第一个重复项并使用 Awk 将其余部分替换为空白单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52738844/

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