linux - 如何修剪文件 - 删除除前两列外的列中具有相同值的行

标签 linux perl shell awk

在这里,我想请您帮助修剪文件,方法是删除列中除前两列外具有相同值的行。

我的文件(制表符分隔,有数百万行和数十列)

Jack Mike Jones Dan Was
1 2 7 3 4
2 3 9 4 8
T T C T T
T M T T T
W A S I S

我想要的文件(删除单元格中除前两行外具有相同值的行)

Jack Mike Jones Dan Was
1 2 7 3 4
2 3 9 4 8
T T C T T
W A S I S

你能给我一些关于我的问题的提示吗?多谢。

并且在related question中体验了awk、shell、perl几个优秀的脚本, .非常感谢帮助者。

最佳答案

awk '{
    val=$3
    for (i=4; i<=NF; i++)
        if (val != $i) {
            print
            break
        }
}'

关于linux - 如何修剪文件 - 删除除前两列外的列中具有相同值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6364550/

相关文章:

linux - 无法在 bash 脚本中生成 grep 命令结果

regex - 在 perl 正则表达式中获取并运行 shell 函数

perl - 在 Perl 的 Test::More 中声明后如何使用参数 `tests`?

linux - Bourne Shell 中的刷新输出

c - Travis CI - 无法在 makefile 中运行 `c` 可执行文件

linux - 如何在 Heroku 上为我的应用程序安装 libstdc++6?

Linux 为 future 的文件和文件夹设置用户和组所有权

regex - bash 脚本 - sed 返回 ip 地址

regex - 正则表达式中的模式匹配 (Perl)

linux - 在 bash shell 中解析命令行选项的最佳方法是什么?