最高列数记录问题

最高列数记录问题

最高列数记录问题

我有一个test.txt文件,内容如下:

1:2:3
123:5
34589:5:0
34567:8:7
781:9:09

您能帮我从该test.txt文件中获取以下输出吗?

345895:0
345678:7
7819:09

解释:下面一行包含最大数字列 i,g。 3、删除:

345895:0
345678:7
7819:09

答案1

解决方案如下:

假设你的文件名为test.txt

cat test.txt | sort -nr | head -n 3 | sed 's/://'

假设文件内容如下:

1:2:3
123:5
34589:5:0
34567:8:7
781:9:09

结果如下:

345895:0
345678:7
781:9:09

说明


  • cat test.txt-> 只需将文件的内容打印到标准输出
  • sort -nr-> 对数据进行排序,假设是number符号 (-n),按相反顺序(-r
  • head -n3-> 从结果中过滤,仅第一3行(-n 3
  • sed 's/://'-> 删除第一个:出现的地方

答案2

假设我正确理解了要求,这应该有效:

awk 'BEGIN {FS=OFS=":"} NF > 2 {print $1$2,$3}' test.txt

这将打印具有两列以上的所有行,并将前两列连接成一列。

相关内容