同じ文字列の値を別の行に追加するスクリプトを作成する必要があります。
たとえば、ファイルに次のものが含まれているとします。
abc,10
xyz,20,
abc,30,
ghd,40
xyz,10
スクリプトはファイル内の一致する文字列abc
などを確認しxyz
、その値を追加して出力を新しいファイルにリダイレクトする必要があります。
出力は次のようになります。
abc,40,
xyz,30,
ghd,40
これに対してスクリプトを書くことはできますか?どんな意見でも役に立ちます。
ベストアンサー1
Perlでは簡単です。ハッシュを使用して累計を保存します。
perl -laF/,/ -ne '
$h{ $F[0] } += $F[1];
}{
print "$_,$h{$_}" for keys %h;
' input-file > output-file
-n
入力を1行ずつ読みます。-l
改行文字を追加print
-a
各入力行を @F 配列に分割する-F/,/
-a
カンマで区切って教えてください。}{
-n
入力の終わりに実行されるコードとループを分離する「Eskimo Greeting」演算子です。