grep指令和管道符号 |
大佬榜:
GREP命令常见用法
grep 过滤查找文件中指定的内容。
管道符 "|" 表示将前一个命令的处理结果输出传递给后面的命令处理。
基本语法
grep [选项] 查找内容 源文件
常用选项
选项 | 功能 |
---|---|
-n | 显示匹配行及行号 |
-i | 忽略字母大小写 |
-a | 不要忽略二进制数据 |
-A | 除了显示符合范本样式的那一行之外,并显示该行之后的内容 |
-b | 在显示符合范本样式的那一行之外,并显示该行之前的内容 |
-B | 除了显示符合样式的那一行之外,并显示该行之前的内容 |
-c | 只打印匹配的行数,不显示匹配的内容 |
-C | 除了显示符合范本样式的那一列之外,并显示该列前、后的内容。与数字配合-C10表示上下10行内容 |
-d | 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作 |
-e | 指定字符串作为查找文件内容的范本样式 |
-E | 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式 |
-f | 从文件中提取模板,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式 |
-F | 将范本样式视为固定字符串的列表 |
-G | 将范本样式视为普通的表示法来使用 |
-h | 当搜索多个文件时,不显示匹配文件名前缀 |
-H | 在显示符合范本样式的那一列之前,标示该列的文件名称 |
-l |
打印匹配模板的文件清单 |
-L | 打印不匹配模板的文件清单 |
-q | 取消显示,只返回退出状态,0则表示找到了匹配的行 |
-R /-r |
多级搜索目录 |
-s | 不显示关于不存在或者无法读取文件的错误信息 |
-v | 选择不匹配的行,反向匹配,查找不包含的内容 |
-V | 显示版本信息 |
-w | 只显示全字符合的列 |
-x | 只显示全列符合的列 |
-y | 此参数效果跟“-i”相同 |
-o | 只输出文件中匹配到的部分 |
-? | 同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行 |
举个🌰
在多个文件中查找
grep "file" file_1 file_2 file_3
输出除范本之外的所有行
grep -v "file" file_name
标记匹配颜色
grep "file" file_name --color=auto
使用正则表达式
grep -E "[1-9]+" egrep "[1-9]+"
只输出文件中匹配到的部分
echo this is a test line. | grep -o -E "[a-z]+\." #输出:line. echo this is a test line. | egrep -o "[a-z]+\." #输出:line.
统计文件或者文本中包含匹配字符串的行数
grep -c "text" file_name
输出包含匹配字符串的行数
grep "text" -n file_name 或 cat file_name | grep "text" -n
多个文件搜索显式匹配行及行号
grep "text" -n file_1 file_2
搜索多个文件并查找匹配文本在哪些文件中
grep -l "text" file1 file2 file3...
grep递归搜索文件,在多级目录中对文本进行递归搜索
grep "text" ./ -r -n
忽略匹配样式中的字符大小写
echo "hello world" | grep -i "HELLO" #输出:hello
指定多个匹配样式
echo this is a text line | grep -e "is" -e "line" -o #输出:is #输出:line
匹配多个样式,在样式文件中逐行写出需要匹配的字符
cat patfile >>>aaa >>>bbb echo aaa bbb ccc ddd eee | grep -f patfile -o
只在目录中所有的.php和.html文件中递归搜索字符"main()"
grep "main()" ./ -r --include *.{php,html}
在搜索结果中排除所有README文件
grep "main()" ./ -r --exclude "README"
在搜索结果中排除filelist文件列表里的文件
grep "main()" ./ -r --exclude-from filelist
排除所有空行
grep -v '^/pre>
匹配多个模式
grep -e "class" -e "vitural" file
显示以J开头的行
grep '^J' file
显示以70结尾的行
grep '70$' file
显示6位数字的行,并打印行号
grep -n '[0-9]\{6,\}$' file
打印前后5行
cat log.txt | grep 'msg' -C 5
计算一下该字串出现的次数
grep 'xxx' -c xxx.log
本文来自博客园,作者:Lz_蚂蚱,转载请注明原文链接:https://www.cnblogs.com/leizia/p/13624366.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步