grep - 字数统计及其输出

标签 grep tr uniq

我有以下几行:

123;123;#rss
123;123;#site #design #rss
123;123;#rss
123;123;#rss
123;123;#site #design

并且需要计算每个标 checkout 现的次数,请执行以下操作:

grep -Eo '#[a-z].*' ./1.txt | tr“\”“\n”| uniq-c

即首先从字符串中只选择标签,然后将它们分解并计数。

输出:

   1 #rss
   1 #site
   1 #design
   3 #rss
   1 #site
   1 #design

而不是预期的:

   2 #site
   4 #rss
   2 #design

问题似乎出在不可打印的字符上,这使得计数不正确。或者是别的什么?谁能提出正确的解决方案?

最佳答案

uniq -c 仅适用于排序输入。
此外,您可以通过将正则表达式更改为 #[a-z]* 来删除 tr

grep -Eo '#[a-z]*' ./1.txt | sort | uniq -c

打印

  2 #design
  4 #rss
  2 #site

正如预期的那样。

关于grep - 字数统计及其输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66139251/

相关文章:

linux - 如何组合多个 grep 命令?

linux - 从代码中删除多余的大括号

bash - 删除行首的空格(空格的大小不是常量)

linux - 如何在 Linux shell 中删除文件中的 n 次重复行?

linux - Uniq 和计数

regex - Mac 地址的 Grep 正则表达式

grep - 找出给定tcl文件中 'source'的所有文件

regex - linux:从单行 XML 字符串中剪切并打印特定参数

正则表达式:查找包含两个或更多字母的每个字符串

regex - 如何在 bash 中替换字符串中的空格和斜杠?