linux - 如何只保留在 unix 制表符分隔文件中唯一的那些行

标签 linux

这里,如果第二个值相同,则两行被认为是多余的。 是否有任何 unix/linux 命令可以实现以下目标。

1   aa
2   aa
1   ss
3   dd
4   dd

结果

1   aa
1   ss
3   dd

我通常使用以下命令,但它并没有实现我在这里想要的。

sort -k2 /Users/fahim/Desktop/delnow2.csv | uniq

编辑:

我的文件大约有 2500 万行: 使用@Steve 建议的解决方案的时间:33 秒。

$date; awk -F '\t' '!a[$2]++' myfile.txt  > outfile.txt; date
Wed Nov 27 18:00:16 EST 2013
Wed Nov 27 18:00:49 EST 2013

排序和唯一性花费了太多时间。等了5分钟我就退出了。

最佳答案

也许这就是您正在寻找的:

awk -F "\t" '!a[$2]++' file

结果:

1   aa
1   ss
3   dd

关于linux - 如何只保留在 unix 制表符分隔文件中唯一的那些行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20254433/

相关文章:

linux - "mail command in linux"是即发即弃还是等待邮件发送?

linux - 如何连接仅在同一天生成的 linux/unix 目录中的文件?

linux - 如何只从变量中提取数字,我需要在这些数字之间留出空格?

python - 如何将Django升级到2.0版本

linux - Kubernetes 上的 Nginx (99 : Cannot assign requested address)

linux - 在哪里可以找到 "reboot"命令的源代码?

c - 如何在不使用 system、popen、fork、exec 的情况下在 C/Linux 中执行外部命令?

php - UTF-8贯穿始终

linux - 使用 sed 在特定行之后追加 HTML 代码块

linux - Nasm 中处理器寄存器的二进制表示