Решение на основе оболочки/выемки -:
index=1
while read line
do
cut -d, -f ${index} <<< "$line"
index=$((++index))
done < input
Вы можете добавить строку awk
в конец вашей команды. Например,
sort words.txt | uniq -c | awk '{print $2","$1}'
По сути, он берет второй столбец и помещает его перед первым столбцом, разделяя его запятой. Не знаю, насколько дорого его запускать на 30-40Gb файле.
мы можем сделать с самим awk...
Попробуйте ниже,
awk '{j[$0]++} END {for (i in j) print i","j[i]}' words.txt