我正在处理一个大(500MB+).csv 文件。我想一次一页打印给定列的唯一值,以便于查看。
awk F, '{print $}' sort | uniq
这会产生一个快速滚动的列表,删除了我感兴趣的 75% 的值。
尝试下面的 awk 命令,它将保留原始顺序以导出 #1 列上的唯一值(您可以轻松调整到另一列)
awk -F, '!a[$1]++' file
如果你需要对结果进行排序,那么在 awk 之后添加排序命令,这将为你节省大量时间。
awk -F, '!a[$1]++' file |sort
对 awk 的 uniq 子函数进行排序并限制打印 ex: awk '{print | “排序 | uniq”}' file.txt
Una mejor alternativa para archivos con millones de lineas, es unicar los valores usandolos como indice en un matriz a[$i]++, luego los valores unicados como indice se insertar en una nueva matriz como elementos y adiciona un index numerico b[ j++]=i,使用 awk“asort()”函数的元素索引的连续顺序,最终完成。
Para esto se procede de la siguiente manera:
awk -F";" '{a[$i]++}END{for(i in a)b[j++]=i;n=asort(b);while(n>0)print b[n--]}' file.csv
(G·卡斯特罗)