简体   繁体   中英

unix script sort showing the number of items?

I have a shell script which is grepping the results of a file then it calls sort -u to get the unique entries. Is there a way to have sort also tell me how many of each of those entries there are? So the output would be something like:

user1 - 50
user2 - 23
user3 - 40

etc..

Use sort input | uniq -c sort input | uniq -c . uniq does what -u does in sort -u , but also has the additional -c option for counting.

Grep has a -c switch to count the occurrence of each item..

grep -c needle haystack

will give the number of needles which you can sort as needed..

Given a sorted list, uniq -c will show the item, and how many. It will be the first column, so I will often do something like:

sort file.txt | uniq -c |sort -nr

The -n in the sort will parse numbers correctly, like 9 before 11 (though with the '-r', it will reverse the count, since I usually want the higher count lines first).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM