У меня есть файл с более чем 20 миллионами записей и вы хотите суммировать 5-й столбец для каждого уникального значения 1-го столбца, я использовал приведенный ниже код.ограничение ассоциативных массивов в awk. использование памяти
cat test.txt |awk 'BEGIN{FS="|"}{a[$1]+=$5;}END{for(i in a) print i"|"a[i];}'
максимальное значение [я] на выходе ограничивается 9999.
любезно помочь мне ... любое решение ??
awk делает ** нет ** прекратить считать на '9999'. В вашей проблеме есть что-то еще, что вы еще не сказали нам. Что происходит с меньшим файлом - вы получаете ожидаемые результаты? Вы получаете все уникальные значения значений $ 1? Получаете ли вы какие-либо сообщения об ошибках или какие-либо другие причины думать, что проблема связана с использованием памяти? Вы уверены, что у вас есть '$ 1', для которого сумма больше 9999? –
, когда я запустил эту команду на o/p выше, есть значения больше, чем 9999 в $ 2 cat file.txt | awk 'BEGIN {FS = "|"} $ 2> 9999' однако после использования 10-sort "-t" | -k2 file | tail значения во втором столбце только до 9999 ... почему так ?? – user6677057
'sort' делает в алфавитном порядке, а не цифровую. Попробуйте 'sort -n ...' –