【问题标题】:Print the number of distict words for each letter in a file打印文件中每个字母的不同单词数
【发布时间】:2016-12-02 20:15:13
【问题描述】:

我需要获取一个文件并打印以英文字母表的每个字母开头的不同单词的数量,按字数的降序排列。例如,如果文件是“我的好名字是 Mike Meller”,那么输出应该是:

3M
2个N
1 我

我需要在命令的管道序列中执行此操作...我知道像 wc -mwc -w 这样的命令,但我不知道如何迭代每个字符并以相同的方式打印它然后对其进行排序就像他们想要的那样......

【问题讨论】:

    标签: linux


    【解决方案1】:
    egrep -o '[a-zA-Z]+' file.txt | tr a-z A-Z | cut -c1 | sort | uniq -c | sort -rn
    

    【讨论】:

    • 这给了我一个所有单词的列表......我需要一个字符列表,每个字符旁边都是以该字符开头的所有单词的数量
    • 我已经解决了这个问题。
    • 太棒了!但是,它也给了我数字和特殊字符,它不区分小写和大写......也许在file.txt | 之后添加tr a-z A-Z 会对此有所帮助?
    • 是的,这应该可以。新模式应该只匹配字母。如果您需要带有重音符号的字母(例如变音符号),您应该将它们添加到模式和 tr 替换。
    • 这很好,但由于某种原因,它也向我显示了特殊字母......有什么办法不包括它们?
    猜你喜欢
    • 1970-01-01
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    相关资源
    最近更新 更多