2016-04-25 8 views
-2

私は製品のリストを含むファイルを持っています。各行はproduct-pcs-priceのようになります。私は価格*価格でそれを並べ替えると思います。2番目と3番目のフィールドの積で並べ替え(Linux)

+1

もう一度試してみて、何か問題がないか再度確認してください。これは無料のコーディングサービスではありません。 – twalberg

+2

期待される出力と試行でファイルのサンプルデータを表示する – anubhava

答えて

0

awksortの組み合わせを使用すると、必要な操作を行うことができます。

awk '{p = $2*$3; print p,$1,$2,$3}' your-file | sort -n 

これにより、一時ファイルが作成されます。変数pと名付けられ、列2と列3の積が代入されます。

次に、この製品に続いて最初の3列が印刷されます。

その後、linux sortコマンドが残りの処理を行います。

0

excelやlibreofficeのようなスプレッドシートの使用を検討してください。スプレッドシートにファイルを読み込んだら、並べ替えや列の乗算はとても簡単です。あなたはGNU Awkのに慣れている場合、このようなスクリプトは、仕事ができる:

は、と言った

artcls.awk

BEGIN { # sort array numerically 
     PROCINFO["sorted_in"] = "@ind_num_asc" 
     FS=" - " 
     } 

     { p = $2 * $3 
     if (p in lines) { 
      lines[ p ] = lines[ p ] "\n" $0 
     } 
     else lines[ p ] = $0 
     } 
END { for(p in lines) print lines[ p ], p } 

あなたはこのようにそれを使用することができます:awk -f artcls.awk your_file

関連する問題