grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 –,则 grep 指令会从标准输入设备读取数据。
基本介绍
grep
命令由选项、模式和文件三部分组成,它在一个或多个文件中搜索满足模式的文本行,模式后的所有字符串被看做文件名,文件名可以有多个, 支持通配符写法,搜索的结果被打印到屏幕,不影响原文件的内容。grep
命令的选项用于对搜索过程进行补充说明,grep
命令的选项及其意义如下表所示。
选项 | 功能 |
---|---|
-i |
忽略大小写 |
-w |
匹配单独完整的单词 |
-I |
仅列出符合匹配的文件,而不列出行 |
-r |
递归匹配 |
-n |
列出行并显示行号 |
-v |
反向匹配 |
-c |
显示匹配行数,不显示内容 |
-f file |
从文件file中提取模板作为匹配模式 |
-E |
使用扩展正则表达式 |
-F |
快速匹配,不使用正则表达式 |
-A n |
打印匹配行及其后n行 |
-B n |
打印匹配行及其前n行 |
-C n |
打印匹配行及其前后n行 |
-o |
只显示匹配到的内容 |
-q |
不输出内容,以退出状态表示搜索结果 |
正则表达式
将带元字符的正则表达式用于grep
命令能够更灵活地匹配信息,使用时需要使用单引号将正则表达式引起来,以免发生一些不可预知的错误。
模式 | 功能 |
---|---|
'^h' |
查找以h 符号开头的行 |
'^$' |
匹配空白行 |
'^/.../' |
匹配以中间含有三个字符的斜线对开头的行 |
'^/.*/' |
匹配以斜线对开头的行,里面可以有任何内容 |
[:alpha:] |
匹配字符 |
[:digit:] |
匹配数字 |
[:alnum:] |
匹配字符或数字 |
[:word:] |
匹配单词字符 |
实例
-
统计 /etc/init.d/functions
文件中每个单词出现的次数并排序
grep -Eo '[[:alnum:]_]+' /etc/init.d/functions | sort | uniq -c | sort -nr
-
查找两个文件中重复的行
$ cat test1
aa
bb
cc
ddd
eee
$ cat test2
aa
bb
ccc
dd
eee
$ grep -wf test1 test2
aa
bb
eee
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !