Linux/Unix常用命令: grep
grep是Linux/Unix系统中非常常用的命令,它用来在文本文件中查找指定的模式并输出文本行。
以下均以or-tools文件夹中的 Dependencies.txt文件为例,其内容如下:
1 | Protobuf=v21.12 |
以下是grep命令的常用用法:
0. 递归查找
1 | grep -r pattern directory |
使用-r选项可以递归查找指定目录下所有文件,而不仅仅是当前目录。
例:我们在or-tools外层文件夹中执行以下命令:
1 | grep -r Clp=1.17.7 or-tools/ |
即可找到Clp=1.17.7出现的两行。
接下来我们进入or-tools文件夹,直接对Dependencies.txt文件进行操作。
1. 简单模式匹配
1 | grep pattern file |
这个最简单的用法,会在指定的文件中查找匹配pattern的所有行。
例:我们找到所有包含Clp的行。
1 | grep Clp Dependencies.txt |
2. 忽略大小写匹配
1 | grep -i pattern file |
使用-i选项可以忽略大小写来查找匹配。
例:我们找到所有包含clp的行,忽略大小写。
1 | grep -i clp Dependencies.txt |
3. 显示匹配行数
1 | grep -c pattern file |
使用-c选项可以统计匹配的行数。
例:我们统计一下Clp出现的次数。
1 | grep -c Clp Dependencies.txt |
不同的选项可以组合使用,比如我们可以忽略大小写,统计一下clp出现的次数。
1 | grep -ci clp Dependencies.txt |
4. 输出不匹配的行
1 | grep -v pattern file |
使用-v选项可以输出不匹配pattern的所有行。
例:我们输出一下不包含Clp的行。
1 | grep -v Clp Dependencies.txt |
5. 输出匹配行的前后若干行
1 | grep -A n -B m pattern file |
使用-A和-B选项可以输出匹配pattern的行的前后n和m行。而-C选项则可以输出前后n行。
例:我们输出一下包含Clp的行的前后一行。
1 | grep -A 1 -B 1 Clp Dependencies.txt |
还有很多其他选项和使用方法,可以通过 man grep命令查看更多帮助和用法。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
