Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        2年前关闭。
                                                                                            
                
        
我有一个很大的制表符分隔文件,其中一部分看起来像这样:

33  x   171 297 126
4   x   171 300 129
2   x   171 303 132
11  y   163 289 126
5   y   163 290 127
3   y   163 291 128
2   y   163 292 129
2   y   170 289 119
2   z   166 307 141
2   z   166 308 142
6   z   166 309 143
4   z   166 329 163
2   z   166 330 164


我只想对每一行进行排序和选择:x,y,z基于第一列(在UNIX中)与之关联的最大值

最佳答案

您可以使用awk执行此操作:

awk '
{
  key = $2;
  flag = 0;
  if (key in value) { max = value[key] ; flag = 1 };
  if (flag == 0 || max < $1) { value[key] = $1; line[key] = $0 };
}
END {
  for (key in line) { print line[key] };
}
' data.tsv

关于linux - 对两列的制表符分隔文件进行排序和唯一化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43744597/

10-13 05:35