有时候,我们要简单统计下一个文件中包含某个特殊字符串的行数。
我第一个想到的是grep + wc,不知道你想到了什么,不过,我们确实有多种方法。
假如我们的文件叫msg,里面有23380092行数据。
某些行是这样的receive: msg1
我们的任务是找出这些行的数量。
1. grep方法
grep ' msg1' msg | wc -l
使用这种方法耗时: 1s
2. awk方法
awk 'BEGIN{c=1}{if($0 ~ / msg1/) c=c+1}END{print c}' msg
使用这种方法耗时:8s
3. 另一种awk方法
awk 'BEGIN{FS=":";c=0;}{if($2 == " msg1") c=c+1}END{print c}' msg
使用这种方法耗时:14s
4. 文件描述符打开文件遍历
#!/bin/bash count=0; exec 4<msg while read line<&4 do if [ "$line" == "receive: msg1" ]; then count=$((count+1)) fi done exec 4<&- echo $count;
我日,这种方法我跑了N久都没有出结果,效率差到无法忍受。
当然脚本本身的正确性,是通过小文件测试过得。
以上几种方法,grep的效率简直神了。这么多数据筛选出来,再有wc统计之后,一共只需要1秒。
而采取自己遍历文件的方法,无论是awk还是自己写脚本打开文件,效率都极差。
看来,我们还是懒一点的好。呵呵。
相关推荐
本篇文章将深入探讨如何在C++中获取Linux命令的返回结果,并使用正则表达式来过滤这些字符串。这一过程涉及到的知识点包括C++的进程控制、字符串处理以及正则表达式的应用。 首先,让我们关注如何在C++中执行Linux...
例如,Windows系统自带的“Find”命令和“FindStr”命令,以及在Linux/Unix环境中广泛使用的“grep”命令,都是典型的字符串查找工具。它们能够帮助用户快速定位含有特定字符串的文件,极大地提高了工作效率。 支持...
综上所述,字符串查找工具在信息技术中扮演着不可或缺的角色,它们帮助我们快速定位信息,提高工作效率,是IT从业人员必备的技能之一。无论是在日常开发、代码调试,还是数据分析过程中,掌握和利用好这些工具,都能...
在IT行业中,字符串查找与...总结来说,字符串查找替换在IT工作中有着广泛的应用,无论是手动操作还是通过编写脚本或使用专用工具,都能有效地提升工作效率。理解和掌握这些技术对于日常的文本处理和数据管理至关重要。
"字符串查找替换专业版工具",正如其名,是一款专为程序员、文本编辑者以及数据处理人员设计的高效软件,旨在提升在大量文本中进行查找和替换的效率。这款工具被称为“最好用”的,无疑体现了它在功能、性能和用户...
* apropos - 在 whatis 数据库中查找字符串 * apt-get - Debian Linux 发行版中的 APT 软件包管理工具 * apt-key - 管理 Debian Linux 系统中的软件包密钥 * apt-sortpkgs - Debian Linux 下对软件包索引文件进行...
8. **grep**:在文件中搜索特定字符串,`grep "keyword" file.txt` 在file.txt中查找包含"keyword"的行。 9. **find**:在指定目录下查找文件,例如 `find / -name myfile` 查找名为myfile的文件。 10. **sudo**:以...
在IT行业中,对大量文件进行字符串查找是一项常见的任务,尤其对于开发者、系统管理员以及数据处理人员来说。"多个文件中查找字符串"这个主题涉及到的是如何有效地在一系列文件中定位特定的文本片段。以下是对这个...
11.4 使用字符串再次运行以前运行过的命令 能够通过引用命令的历史编号来再次运行它,当然不错。但这需要事先知道命令在 `history` 中的编号,而查找这个编号多少有点麻烦(虽然把 `history` 的输出通过管道传递给 ...
在大量文件中查找字符串时,效率就显得尤为重要。这就需要用到命令行工具,如在Windows中的`findstr`命令,Linux或Unix环境下的`grep`命令。这些命令行工具可以遍历指定目录下的所有文件,查找包含特定字符串的文件...
2. **文件和目录操作**:`cp`和`mv`分别用于复制和移动文件或目录,`cat`、`more`、`less`查看文件内容,`grep`在文件中搜索特定字符串,`find`根据条件查找文件。 3. **权限管理**:`chmod`改变文件或目录的权限,...
5. **搜索与查找**:`find`命令用于根据不同的条件在文件系统中搜索文件,`grep`则用于在文件内容中查找特定字符串。 6. **进程管理**:`ps`用于查看当前进程,`kill`和`pkill`用于结束进程,`top`或`htop`则提供...
- `grep`:在文件中搜索特定字符串。 - `locate`:快速查找文件,依赖于数据库更新。 4. 权限和所有权: - `chmod`:改变文件或目录的权限。 - `chown` 和 `chgrp`:更改文件所有者和组。 5. 系统信息和控制:...
8. `grep`:搜索文件内容,用于在文件或输出中查找特定的字符串。 9. `sudo`:以超级用户权限执行命令,用于执行需要管理员权限的操作。 10. `ps`:显示进程状态,用于查看当前系统中运行的进程。 11. `top`:实时...
7. `grep`:搜索文件中的特定字符串,有助于查找和分析数据。 8. `find`:根据指定条件搜索文件,如按名称、大小、时间等。 9. `sudo`:以超级用户权限执行命令,用于执行需要管理员权限的操作。 10. `man`:查看...
在Linux系统中,Bash shell提供了一系列强大的命令来处理字符串,这些命令包括grep、sed、cut等。本文将详细介绍这些命令的功能、参数及其使用方法。 首先,让我们来看看grep命令。grep全称为Global Regular ...
总的来说,shell批量处理字符串指令行是系统管理员和开发者日常工作中不可或缺的技能,通过熟练掌握这些命令,可以有效地自动化处理各种文本数据。不过,由于原始描述没有提供具体细节,以上内容是基于一般性假设和...
- `s/zhangsan/lisi/g`:这是sed的替换命令,`s`代表替换,`zhangsan`是要查找的字符串,`lisi`是替换后的字符串,`g`表示全局替换,即替换每一行中所有的匹配项,如果不加`g`,则只替换每行的第一个匹配项。...
11. `grep`:搜索文件中的特定字符串。 12. `find`:在指定目录下查找文件。例如,`find ~ -name "example.txt"`在当前用户家目录下查找名为"example.txt"的文件。 13. `vi/vim`或`nano`:文本编辑器,用于编辑文件...
8. **grep**:搜索文件中的特定字符串。Windows中没有内置命令,但可以借助其他工具如`findstr`或安装Grep for Windows。 9. **find**:查找文件。Windows有`find`命令,但功能略有不同,需注意参数用法。 10. **...