shell 怎么统计一段文本内重复出现的某个字符

shell 怎么统计一段文本内重复出现的某个字符

突然想起很久之前的一个面试题,怎么统计一段文本内多次重复出现的某个字符

//我们先创建一个txt文件,统计里面a出现的次数吧
vim liwenchao.txt
a a a
bb a
//用grep测试,发现只有 grep -o的时候才可以正确统计
root@idc-general-k8s-26:/root#grep -o "a" liwenchao.txt  | uniq -c | sort -n
      4 a
root@idc-general-k8s-26:/root#grep  "a" liwenchao.txt  | uniq -c | sort -n
      1 a a a
      1 bb a

grep 和 grep -o的区别

//grep和grep -o的区别在于它们输出的内容不同。
//grep命令用于在文件中查找包含指定模式的行,并将包含该模式的行输出到标准输出。默认情况下,grep输出整行文本,而不是只输出匹配的模式。

//例如,假设有一个文件example.txt,其中包含以下内容:
This is an example file.
It contains some lines of text.

//如果我们运行以下命令:
grep "example" example.txt
//则输出为:
This is an example file.
//这是因为该命令匹配到了包含字符串"example"的行,并将整行输出到标准输出。

//而grep -o命令则只输出匹配的模式,而不是整行文本。它用于在文件中查找指定模式,并将所有匹配的模式输出到标准输出。如果有多个匹配,每个匹配将单独输出在一行上。
//例如,如果我们运行以下命令:
grep -o "example" example.txt
//则输出为:
example
example
//这是因为该命令匹配到了两个包含字符串"example"的位置,并将每个匹配的模式单独输出到标准输出。
posted @ 2023-07-17 17:57  liwenchao1995  阅读(163)  评论(0编辑  收藏  举报