У меня есть файл CSV, из которого я хотел бы извлечь некоторые фрагменты информации: для каждого отдельного значения в одном столбце я хотел бы вычислить сумму соответствующих значений в другом столбце. В конце концов, я могу сделать это на Python, но я считаю, что может быть простое решение с помощью awk
.
Это может быть файл 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
Я хотел бы получить:
1 1.6
2 4.5
3 5.8
4 -1.0
5 10.9
Пока, я могу извлечь только:
a) значения первого столбца:
awk -F ' ' '{print $(2)}' MyFile.csv | awk -F ':' '{print $(1)}'
а затем получим:
1
2
2
3
3
3
4
5
b) и значения, равные, скажем, 1.1
в последнем столбце:
awk -F ' ' '{print $(NF)}' MyFile.csv | awk '$1 == 1.1'
а затем получим:
1.1
1.1
Я не могу одновременно извлекать колонки, которые меня интересуют, что может помочь мне в конце. Вот пример вывода, который может облегчить вычисление сумм (я не знаю):
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: Благодаря Elenaher, мы могли бы сказать, что входной файл - это файл выше.