CSV data manipulation: Difference between revisions
Content added Content deleted
Line 4,108: | Line 4,108: | ||
{{works with|bash}} |
{{works with|bash}} |
||
Very simple solution using powerfull and ancient but strong linux command, I named "tr", and |
Very simple solution using powerfull and ancient but strong linux command, I named "tr" and "bc", and internal variable bash test capabilities : |
||
<lang>cat csv | while read S; do |
<lang>cat csv | while read S; do |
||
[ -z ${S##*C*} ] && echo $S,SUM || echo $S,`echo $S | tr ',' '+' | bc` |
[ -z ${S##*C*} ] && echo $S,SUM || echo $S,`echo $S | tr ',' '+' | bc` |
||
Line 4,114: | Line 4,114: | ||
Result : |
Result : |
||
<lang> |
<lang>C1,C2,C3,C4,C5,SUM |
||
1,5,9,13,17,45 |
1,5,9,13,17,45 |
||
2,6,10,14,18,50 |
2,6,10,14,18,50 |
||
Line 4,120: | Line 4,120: | ||
4,8,12,16,20,60</lang> |
4,8,12,16,20,60</lang> |
||
Other solution : |
Other solution (not from me) : |
||
<lang> |
<lang>bash>exec 0<"$1" # open the input file on stdin |
||
exec 1>"$1.new" # open an output file on stdout |
exec 1>"$1.new" # open an output file on stdout |
||
{ |
{ |