首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按同一行中引用的次数对文本中的单词进行排序

按同一行中引用的次数对文本中的单词进行排序
EN

Stack Overflow用户
提问于 2019-04-12 08:37:49
回答 1查看 65关注 0票数 1

查找文本中出现频率最高的单词,按数字排序,每个数字打印在同一行

代码语言:javascript
复制
    grep -oE '[[:alpha:]]' file.txt | sort | uniq -c | sort -nr

它给了我们

代码语言:javascript
复制
3 linux
3 fedora
2 ubuntu
2 mandriva

我在寻找

代码语言:javascript
复制
3 linux fedora
2 ubuntu mandriva


    grep -oE '[[:alpha:]]' file.txt | sort | uniq -c | sort -nr

结果

代码语言:javascript
复制
 3 linux
 3 fedora
 2 ubuntu
 2 mandriva

我在寻找

代码语言:javascript
复制
 3 linux fedora
 2 ubuntu mandriva
EN

回答 1

Stack Overflow用户

发布于 2019-04-12 20:48:36

我不能在bash单行代码中做到这一点,但我这里有一个简短的python脚本,如果它适合你的话。

代码语言:javascript
复制
import os

preMergedList = os.popen("grep -o -E '\w+' file.txt | sort | uniq -c | sort -nr").readlines()

countDict = {}
for line in preMergedList:
    count, word = line.split(None)
    count = int( count.strip() )
    word = word.strip()
    if not countDict.has_key( count ):
        countDict[count] = ""
    countDict[count] += word + " "

for count, wordString in sorted( countDict.iteritems(), reverse=True ):
    print count, wordString
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55642935

复制
相关文章

相似问题

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