首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux grep管道

Linux grep管道
EN

Stack Overflow用户
提问于 2011-08-02 18:14:28
回答 4查看 490关注 0票数 0

我有一个包含数字列表的input.txt文件:

代码语言:javascript
复制
1719
194
1719
1719
194
1135
194

我想使用grep管道创建一个output.txt,以便按照出现次数的升序对它们进行排序,即:

代码语言:javascript
复制
194: 3 times
1719: 2 times
1135: 1 time.

有什么建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-02 18:20:30

假设数字在6910460.txt中,不包含空行:

代码语言:javascript
复制
$ cat 6910460.txt | sort | uniq -c | sort -nr
3  194
2 1719
1 1135

或者,如果您还需要文本"times“,您可以附加一个awk命令:

代码语言:javascript
复制
$ cat 6910460.txt | sort | uniq -c | sort -nr | \
    awk 'BEGIN {FS=OFS=" "} \
        {temp=$2; $2=$1; $1=temp} {printf "%4i %4i time(s)\n", $1, $2}'

它将打印:

代码语言:javascript
复制
 194    3 time(s)
1719    2 time(s)
1135    1 time(s)
票数 3
EN

Stack Overflow用户

发布于 2011-08-02 18:45:48

代码语言:javascript
复制
awk '
    {count[$0]++} 
    END {for (n in count) {print n ": " count[n] " times"}}
' file |
sort -nr -k2
票数 2
EN

Stack Overflow用户

发布于 2011-08-02 18:21:44

代码语言:javascript
复制
echo "1719
194
1719
1719
194
1135
194" | sort -n | uniq -c 
      3 194
      1 1135
      3 1719

这就足够了吗,或者您可以自己交换值吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6910460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档