3 ms·
Thank you! I did not know you get to a "sql like group by" using uniq -c. That's so cool! I think I used to pipe it to awk and count using an array and then dis
by hi41 6y ago
Thank you! I did not know you get to a "sql like group by" using uniq -c. That's so cool! I think I used to pipe it to awk and count using an array and then display but your method is far better than mine.
- quicklime 6y agoI use "sort | uniq -c" all the time, but I find it annoying that it does it in worse-than-linear time. It gets super slow every time I accidentally pass it a large input. At that point I usually fall back to "awk '{ xs[$0]++ } END { for (x in xs) print xs[x], x }'", but it's quite long and awkward to type, so I don't do it by default every time. At some point I'll add an alias or a script to do this. One day. edit: OK I finally did it; it's literally been on my to-do list for about 10 years now, so thanks :) $ cat ~/bin/count #!/usr/bin/awk -f { xs[$0]++ } END { for (x in xs) print xs[x], x }