1

我有这样的数据集

tack2@domain.com,2009-11-27
overflow@domain2.com,2009-11-27
overflow@domain2.com,2009-11-27

当我运行命令以删除 column2 的所有相同条目时

sort -t ',' -k2 stars.txt -u

它正在删除 column1 的条目,为了删除 column2 的重复条目,我必须输入-k3标志

sort -t ',' -k3 stars.txt -u

谁能向我解释为什么会这样?为什么我必须在文件中的列中输入 +1 才能删除该列?

4

2 回答 2

2

在我的系统中一切正常:

$ sort -t, -k1 -u 1.txt 
overflow@domain2.com,2009-11-27
tack2@domain.com,2009-11-27

$ sort -t, -k2 -u 1.txt 
tack2@domain.com,2009-11-27

这可能是由于您的语言环境。你能用 LANG=C 重复命令吗?

$ LANG=C sort -t, -k1 -u 1.txt 
$ LANG=C sort -t, -k2 -u 1.txt 
于 2013-02-04T14:28:48.543 回答
1

这是典型的 awk 工作,不需要排序。我在这里添加一条短线,以防您想尝试一下。

awk -F, '!a[$2]++' file

将完成这项工作。

于 2013-02-04T15:28:27.460 回答