根据指定的过滤条件对目标文本进行逐行匹配检查,打印匹配的行
就是想要查找的东西 可以是普通字符串、也可是正则表达式
语法:
grep [options] [pattern] file
命令 参数 配置模式 文件数据
参数 | 解说 |
---|---|
-v | 排除匹配结果 |
-n | 显示匹配行与行号 |
-i | 忽略大小写 |
-c | 只统计匹配的行数 |
-E | 支持使用扩展的正则表达式元字符 |
–color=auto | 为grep过滤结果添加颜色 |
-w | 只匹配过滤的单词 |
-o | 只输出匹配的内容,而不是将整行内容输出 |
-q: --quite, --silent: | 静默模式,不输出任何信息 |
案例 ‘cat /etc/passwd > /tmp/test_grep.text’
grep -n "login" /tmp/test_grep.text
grep -n -v "login" /tmp/test_grep.text
grep -i "login" /tmp/test_grep.text
grep -E "root|sync" --color=auto /tmp/test_grep.text
grep -i -c "login" /tmp/test_grep.text
输出行数grep -n "^$" /tmp/test_grep.text
grep -n -v "^$" /tmp/test_grep.text
grep -n "^#" /tmp/test_grep.text
grep -n -v "^#" /tmp/test_grep.text
grep -n -v "^#" /tmp/test_grep.text | grep "^$" -v
grep -n "\.$" /tmp/test_grep.text
grep -n "/bin/bash$" /tmp/test_grep.text
grep -n -o "/bin/bash$" /tmp/test_grep.text
(仅输出 行号 /bin/bash)grep -n -v "/bin/bash$" /tmp/test_grep.text
grep -n ".s" /tmp/test_grep.text
(以带s字符 例is names等)grep -n "i*" /tmp/test_grep.text
(以带i字符 例 is time 等)grep -n "[a-z]" /tmp/test_grep.text
grep -n "[a-fA-Z0-5]" /tmp/test_grep.text
grep -n "[^0-5]" /tmp/test_grep.text
grep -E "chi+" /tmp/test_grep.text
grep -E "gd?d" /tmp/test_grep.text
grep -E "gd?d" /tmp/test_grep.text
find /data -name ".txt"|grep -E "a|x"
grep -E "good|glad" test.txt
或grep -E "g(oo|la)d test.txt
grep -E "l..e" lovers.txt
grep -E "l..e" lovers.txt
grpe -E "y{2, 4}" test.txt
grep -A -B -C 使用介绍
grep -A -B -C 属于上下文控制(Context control
使用规则如下:
grep -A 显示匹配指定内容及之后的n行
grep -B 显示匹配指定内容及之前的n行
grep -C 显示匹配指定内容及其前后各n行
示例
$ grep -A 5 name test.txt
搜索匹配test.txt文件中与”name”字符串匹配的行,并显示其后的5行
看视频学习 哔哩哔哩的猿来大湿兄
https://www.bilibili.com/video/BV1E14y147Ng