Ho un file CSV da cui vorrei estrarre alcune informazioni: per ogni valore distinto in una colonna, vorrei calcolare la somma dei valori corrispondenti in un'altra colonna. Alla fine, potrei farlo in Python, ma credo che ci possa essere una soluzione semplice usando awk
.somma condizionale Awk da un file CSV
Questo potrebbe essere il file CSV:
2 1:2010-1-bla:bla 1.6
2 2:2010-1-bla:bla 1.1
2 2:2010-1-bla:bla 3.4
2 3:2010-1-bla:bla -1.3
2 3:2010-1-bla:bla 6.0
2 3:2010-1-bla:bla 1.1
2 4:2010-1-bla:bla -1.0
2 5:2010-1-bla:bla 10.9
vorrei ottenere:
1 1.6
2 4.5
3 5.8
4 -1.0
5 10.9
Per ora, posso estrarre solo:
a) la valori della prima colonna:
awk -F ' ' '{print $(2)}' MyFile.csv | awk -F ':' '{print $(1)}'
e quindi ottenere:
1
2
2
3
3
3
4
5
b) ei valori pari a, per esempio, 1.1
nell'ultima colonna con:
awk -F ' ' '{print $(NF)}' MyFile.csv | awk '$1 == 1.1'
e quindi ottenere:
1.1
1.1
Non riesco a estrarre contemporaneamente le colonne a cui sono interessato, il che può aiutarmi alla fine. Ecco un esempio di output che può facilitare il calcolo delle somme (non lo so):
1 1.6
2 1.1
2 3.4
3 -1.3
3 6.0
3 1.1
4 -1.0
5 10.9
Edit: Grazie a Elenaher, potremmo dire l'ingresso è il file di cui sopra.
puoi fornirci un esempio? – stew
Grazie a tutti! È fantastico! – Wok