繁体   English   中英

排序和唯一性

[英]sort and uniq oneliner

在unix中是否有一个用于排序和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

如果文件仅由数字组成,则每行一个:

sort -n FILENAME | uniq

要么

sort -u -n FILENAME

(您可以在sort命令中添加-u而不是通过uniq进行管道传递,在以下所有内容中。)

如果要仅提取文件的一列,然后对该列进行数字排序以删除重复项,则可以执行以下操作:

cut -f7 FILENAME | sort -n | uniq

Cut假定列之间只有一个选项卡。 如果文件是CSV,则可以执行以下操作:

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

但是,这不会工作,如果有一个,在文件中的文本字段(如CSV将保护它"的)。

如果要按列排序但仅删除完全重复的行,则可以执行以下操作:

sort -k7,7n FILENAME | uniq

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

sort -k7,7n -t, FILENAME | uniq

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM