2017-08-15 4 views
0

具体的には、パスの例としては以下のようなファイルがあります。私は、結果としてはbashを使用してアイテムで数字を合計したいbashでセミコロンで区切られた特定の単語で数値を合計する方法

apple;10; 
tomato;5; 
apple;5; 
banana;10; 
banana;5; 
tomato;10; 
banana;10; 
apple;5; 

file.txtを

file.output

apple;20; 
banana;25; 
tomato;15; 

もう一つの言葉は、私は、ファイルを簡素化する必要があります。この種の出力をどのようにしてbashの別のファイルとして実現できますか?

ありがとうございます。

+0

あなたがこれまでに試したものを私たちに示してください。 – hek2mgl

+0

これまでphpで試したことがありますが、dbテーブルに書かれているように1つ1つカウントします。 – linuxman

+0

あなたは 'bash'で何を解決しようとしましたか? – hek2mgl

答えて

0

次のawkを試してみてください。Input_fileと同じ順序で出力が必要な場合は、次のようにしてください。

awk -F";" '!a[$1]{b[++i]=$1} {a[$1]+=$2;} END{for(j=1;j<=i;j++){print b[j] FS a[b[j]] FS}}' Input_file 

出力は以下の通りです。あなたはINPUT_FILEごとに順序については気にしない場合は

apple;20; 
tomato;15; 
banana;25; 

あなたは、単に次のよう試みることができる:

awk -F";" '{a[$1]+=$2;} END{for(i in a){print i FS a[i] FS}}' Input_file 
+1

thatsは魅力のように動作します。ありがとうございました。 – linuxman

関連する問題