Loading... ### [grep 文本搜索](https://linuxtools-rst.readthedocs.io/zh-cn/latest/base/03_text_processing.html#id23) ``` grep match_patten file // 默认访问匹配行 ``` 常用参数 * -o 只输出匹配的文本行 **VS** -v 只输出没有匹配的文本行 * -c 统计文件中包含文本的次数grep -c “text” filename * -n 打印匹配的行号 * -i 搜索时忽略大小写 * -l 只打印文件名 在多级目录中对文本递归搜索(程序员搜代码的最爱): ``` grep "class" . -R -n ``` 当前文件夹下是否有 12 字符串的文件: ```bash grep -l "12" * ``` 匹配多个模式: ``` grep -e "class" -e "vitural" file ``` grep输出以0作为结尾符的文件名(-z): ``` grep "test" file* -lZ| xargs -0 rm ``` 综合应用:将日志中的所有带where条件的sql查找查找出来: ``` cat LOG.* | tr a-z A-Z | grep "FROM " | grep "WHERE" > b ``` 查找中文示例:工程目录中utf-8格式和gb2312格式两种文件,要查找字的是中文; 1. 查找到它的utf-8编码和gb2312编码分别是E4B8ADE69687和D6D0CEC4 2. 查询: ``` grep:grep -rnP "\xE4\xB8\xAD\xE6\x96\x87|\xD6\xD0\xCE\xC4" *即可 ``` 汉字编码查询:[http://bm.kdd.cc/](http://bm.kdd.cc/) 可以使用-c标志计算与给定条件匹配的次数: ```bash grep -c "linux" long.txt 2 ``` **查找record.log中包含AAA,但不包含BBB的记录的总数**: ``` cat record.log | grep AAA | grep -v BBB | wc -l ``` 最后修改:2024 年 07 月 24 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏