awkを使用してテキストファイルのすべての最大値を印刷します。

awkを使用してテキストファイルのすべての最大値を印刷します。

1列の最大値をすべて出力しようとしています。

だから入力は次のようになります

John.      Marketing.   5000.  
Marcus.    Manager.     9500.  
Jason.     SW           9500.  
Cindy.     Developer.   6000.  

私が望む出力は

   name: Marcus, sal: 9500.    
   name: Jason, sal: 9500      

これまで私のコードは

    BEGIN {a=0}

    {
        if ($3> a)
           max=$3;
        output=$1
     }

    END{
      print "name: ", output, "sal:", max
    }

ベストアンサー1

ファイルを2回解析する必要があります。まず、最大値を見つけてからその行を印刷する必要があります。たとえば(max正数であると仮定):

解析.awk

NR == FNR && $3  > max { max = $3 }
NR != FNR && $3 == max

次のように実行します。

awk -f paste.awk infile{,}

{ print "name:", $1, "sal:", $3 }フォーマットを変更するには、最後の行に追加してくださいparse.awk。出力は次のとおりです。

name: Marcus. sal: 9500.
name: Jason. sal: 9500.

おすすめ記事