当前位置: 技术问答>linux和unix
文本的内容提取的问题
来源: 互联网 发布时间:2017-01-13
本文导语: 现有文本的内容如下 aa 4 2 0 0 2 bb 3 2 1 0 0 aa 3 2 0 0 1 bb 3 0 0 0 3 .......... 现在想将第一列中的每个名称,对应第二列中的数字最大的那些行打印出来 例如在上面的例子中,我想要的结果是 aa 4 2 0 0 2 bb...
现有文本的内容如下
aa 4 2 0 0 2
bb 3 2 1 0 0
aa 3 2 0 0 1
bb 3 0 0 0 3
..........
现在想将第一列中的每个名称,对应第二列中的数字最大的那些行打印出来
例如在上面的例子中,我想要的结果是
aa 4 2 0 0 2
bb 3 2 1 0 0
bb 3 0 0 0 3
.........
不知道bash或awk可不可以实现这个效果
aa 4 2 0 0 2
bb 3 2 1 0 0
aa 3 2 0 0 1
bb 3 0 0 0 3
..........
现在想将第一列中的每个名称,对应第二列中的数字最大的那些行打印出来
例如在上面的例子中,我想要的结果是
aa 4 2 0 0 2
bb 3 2 1 0 0
bb 3 0 0 0 3
.........
不知道bash或awk可不可以实现这个效果
|
#!/bin/bash
cat $1 | awk '
{
if(maxRec[$1]==""||$2>maxRec[$1])
{maxRec[$1]=$2;rec[$1]=$0;}
else if($2==maxRec[$1])
{rec[$1]=rec[$1]"n"$0;}
}
END{for(i in rec){print rec[i];}}
'
|
$ awk '{if(v[$1]