最高列数记录问题
我有一个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
这将打印具有两列以上的所有行,并将前两列连接成一列。