在unix中给出一个文件名是否有针对sort和uniq的oneliner? 我用Google搜索并发现以下内容但它没有排序,也不确定下面的命令在做什么...使用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
答案 0 :(得分:4)
如果您的文件只包含数字,则每行一个:
sort -n FILENAME | uniq
或
sort -u -n FILENAME
(您可以在-u
命令中添加sort
,而不是在以下所有内容中添加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