【问题标题】:proper use of awk, sort and uniq正确使用 awk、sort 和 uniq
【发布时间】:2014-02-10 00:53:42
【问题描述】:

我正在处理一个大型 (500MB+) .csv 文件。我想一次打印一页给定列的唯一值以便于查看。

awk F, '{print $}' sort | uniq

这会产生一个快速滚动的列表,它会截断 75% 的我感兴趣的值。

【问题讨论】:

  • 你好像漏掉了'|'排序前。 awk F, '{print $}' | sort | uniq。此外,uniq 的输出可能不止一屏。您可能要添加 '|更多”以舒适地查看它。
  • 如果只有 (cough > a_file cough) 有一些方法可以将结果捕获到磁盘..
  • 对于分页,我建议使用less,或者按照建议,将输出定向到文件进行手动检查。

标签: awk uniq


【解决方案1】:

试试下面的 awk 命令,它会保持原来的顺序导出 #1 列上唯一的(你可以很容易地调整到另一列)

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

如果您需要对结果进行排序,那么在 awk 之后添加排序命令,这将为您节省大量时间。

awk -F, '!a[$1]++' file |sort

【讨论】:

  • 我认为您可以在 awk awk -F, '!a[$1]++{print | "sort"}' file 内部执行此操作,而不是外部管道
  • 这并没有带来任何改进。在 awk 内部或外部将输出通过管道传输到 sort 没有任何区别,并且会降低“代码”的可读性。
猜你喜欢
  • 2011-10-27
  • 2014-03-02
  • 2020-04-05
  • 1970-01-01
  • 2013-11-27
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多