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
posted @   Lz_蚂蚱  阅读(662)  评论(0编辑  收藏  举报
(评论功能已被禁用)
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起