文章目录
- 1. 概述
- 2.使用 `grep` 命令
- 2.1. 不区分大小写的搜索
- 2.2. 使用多个输入文件
- 3.使用 `tr`命令
- 3.1. 不区分大小写的搜索
- 4. 使用 `awk`命令
- 5. 性能比较
- 6:结论
linux中计算文本文件中某个字符的出现次数
1. 概述
在本教程中,我们将学习使用 Linux 命令查找文本文件中特定字符的计数。
假设你对常用的 Linux 命令有基本的了解,包括
grep
、awk
、tr
和wc
。
rumenz.txt
中有一些虚拟数据:
> cat rumenz.txt rumenz.txt hello world!!!!
2.1. 不区分大小写的搜索
在grep
的命令支持 -i
来进行区分大小写的搜索选项:
> grep -o -i 'l' rumenz.txt | wc -l 3
2.2. 使用多个输入文件
> cat > dummy.txt This is dummy text. $ grep -o -i 'e' rumenz.txt dummy.txt | wc -l 2
3.使用 tr
命令
> tr -c -d 'l' < rumenz.txt | wc -c 3
让我们首先了解上面命令中使用的选项。
-c
: 取代所有不属于第一字符集的字符-d
: 将删除集合中提到的所有字符
3.1. 不区分大小写的搜索
> tr -cd 'lL' < rumenz.txt | wc -c 3
4. 使用 awk
命令
> awk -F 'e' '{s+=(NF-1)} END {print s}' rumenz.txt 2
5. 性能比较
> ls -lah large.txt -rw-r--r--. 1 root root 1G Jun 12 10:53 large.txt > time grep -o 'e' large.txt | wc -l 82256735 real 0m 733s user 0m 649s sys 0m 714s > time tr -c -d 'e' > large.txt | wc -c 82256735 real 0m 542s user 0m 892s sys 0m 433s > time awk -Fe '{s+=(NF-1)} END {print s}' large.txt 82256735 real 0m 080s user 0m 589s sys 0m 933s
6:结论