-1

在 unix 中给定文件名,是否有用于 sort 和 uniq 的 oneliner?我用谷歌搜索并找到了以下内容,但它没有排序,也不确定下面的命令在做什么..使用 awk 或任何其他 unix 工具有更好的方法吗?

cut -d, -f1 file | uniq | xargs -I{} grep -m 1 "{}" file

在旁注中,是否有一个可以在 Windows 和 unix 中使用?这并不重要,只是检查..

C:\Users\Chola>sort -t "@" -k2,2 email-list.txt

输入文本文件:-

436485
422636
429228
427041
433414
425810
422636
431526
428808
4

1 回答 1

4

如果您的文件仅包含数字,则每行一个:

sort -n FILENAME | uniq

或者

sort -u -n FILENAME

(您可以添加-usort命令中,而不是在以下所有内容中通过管道uniq。)。

如果您只想提取文件的一列,然后对该列进行数字排序以删除重复项,您可以这样做:

cut -f7 FILENAME | sort -n | uniq

Cut假定列之间有一个选项卡。如果您的文件是 CSV,您可以这样做:

cut -f7 -d, FILENAME | sort -n | uniq

,但如果文件中的文本字段中有 (CSV 将用"'s 保护它),那将不起作用。

如果您想按列排序但只删除完全重复的行,那么您可以这样做:

sort -k7,7n FILENAME | uniq

sort假定列由空格分隔。同样,如果你想用 分开,,你可以使用:

sort -k7,7n -t, FILENAME | uniq
于 2013-01-20T01:33:53.177 回答