2016-09-14 4 views
0

たとえば、ここでは並べ替えたいファイルがあります。空白と ':'コロンでbxtソートする方法

A:2 B:9 
A:9 B:12 
A:32 B:23 
A:2 B:3 
A:21 B:33 

「B:」の後の値が最大の行を出力するにはどうすればよいですか?あなたは大きなファイルのために非常に高価になることができますソートの必要なく、単一のコマンドでこれを行うことができますawkのを使用して

A:21 B:33 

答えて

3
$ cat /tmp/a 
A:2 B:9 
A:9 B:12 
A:32 B:23 
A:2 B:3 
A:21 B:33 

$ sort -t: -k3rn /tmp/a | head -1 
A:21 B:33 
+1

正しい回答を得ても、これは 'B:'の後ろの数字でソートされていません。 –

+0

@DawidGrabowskiはい、2番目の列のすべての要素で 'B:'が一般的であるという事実を利用しています。 –

+0

それは問題ではありません。パイプなしで何を得るかを見てください。 –

4

awk -F'[: ]+' '$4>max{max=$4; line=$0} END{print line}' file 

A:21 B:33 
2

を持つ他のオプションはをsedの:

sort -k1.9,1.10 -rn file | head -1 

9番目と10番目の文字でソート(B:の後)

関連する問題