gpt4 book ai didi

linux - 如何删除第二列中的值出现特定次数的文件的行?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:03 28 4
gpt4 key购买 nike

我有一个包含整数行的文件。我想删除第二列中的值未出现在任何其他行的第二列中的行。

例如:

4 5 6 // row 0
1 2 3 // row 1
3 3 3 // row 2
4 5 4 // row 3
3 4 5 // row 4
2 2 4 // row 5

第 2 列的值 3 和 4 在所有行中只出现一次。我想删除具有这些唯一列 2 值的行,即第 2 行和第 4 行。

我还需要按第 2 列对这些进行排序,所以我目前拥有的是

$ sort -k2 -n filename > filename_sorted

但我不确定如何识别第 2 列值唯一的行并将其删除。

最佳答案

只需处理文件两次:首先计算每个第二列值出现的次数,然后打印出现不止一次的值:

$ awk 'FNR==NR{a[$2]++; next} a[$2]>1' file file
4 5 6 // row 0
1 2 3 // row 1
4 5 4 // row 3
2 2 4 // row 5

关于linux - 如何删除第二列中的值出现特定次数的文件的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34339453/

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