Unix/Linux 中的 grep 命令
Unix/Linux 中的 grep 命令参数及示例用法
- 作用
- 语法
- 主要参数
- 示例命令
作用
Grep 筛选器在文件中搜索特定的字符模式,并显示包含该模式的所有行。在文件中搜索的模式称为 正则表达式. (grep 代表正则表达式的全局搜索和打印输出)。
语法
grep
-options(参数) pattern(关键词) files(文本文件)
主要参数
-c
:只输出匹配模式的行数。
-h
:只显示匹配的行,不显示文件名。
-i
:忽略匹配时的大小写。
-l
:只显示文件名列表。
-n
:显示匹配的行及其行号。
-r
:显示文件所在目录即路径。
-v
:输出所有不匹配的行。
-e
exp : 指定该选项的表达式,可以多次使用。
-f
file :指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-E
:将样式为延伸的正则表达式来使用。
-w
:匹配整个单词。
-r
:明确要求搜索子目录。
-d skip
:忽略子目录。
-o
:只打印匹配行的匹配部分,每个这样的部分在单独的输出行上。
\
:忽略正则表达式中特殊字符的原有含义。
[ ]
:单个字符,如[A]即A符合要求。
[ - ]
:范围,如[A-Z],即A、B、C一直到Z都符合要求。
.
:所有的单个字符。
*
:所有字符,长度可以为0。
-A n
: 除了显示符合范本样式的那一行之外,并显示该行之后n
行。
-B n
: 除了显示符合范本样式的那一行之外,并显示该行之前n
行。
-C n
: 除了显示符合范本样式的那一行之外,并显示该行之前以及之后n
行。
示例命令
- 考虑下面的文件作为输入,键入
cat > geekfile.txt
后回车;
$ cat > geekfile.txt
- 输入如下内容并键入回车;
unix is great os. unix is opensource. unix is free os.
learn operating system.
Linux is a family of open-source Unix-like operating systems based on the Linux kernel.
Unix linux which one you choose.
uNix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.
- 在键盘上按下
Ctrl+D
(或者键入Control-D
),保存文本并回到shell提示符。
1、 -i
忽略匹配时的大小写:选项允许在被检索文件中不敏感地搜索字符串大小写。它匹配“UNIX
”、“Unix
”、“unix
”等单词。
$ grep -i "UNix" geekfile.txt
输出:
2、-c
只输出匹配模式的行数: 我们可以找到与给定字符串模式匹配的行数。
$ grep -c "unix" geekfile.txt
输出:
3、-l
显示与模式匹配的文件名: 我们可以只显示包含给定字符串模式的文件。
$ grep -l "unix" *
or
$ grep -l "unix" geekfile.txt f1.txt f2.txt f3.txt
输出:
4、-w
匹配文件中的整个单词: 默认情况下,grep 匹配给定的字符串/模式,即使它在文件中作为子字符串出现。Grep 的-w
选项使它只匹配整个单词。
$ grep -w "unix" geekfile.txt
输出:
5、-o
只打印匹配行的匹配部分: 默认情况下,grep 显示具有匹配字符串的整个行。我们可以使用-o
选项使 grep 只显示匹配的字符串。
$ grep -o "unix" geekfile.txt
输出:
6、grep -n
输出时显示行号: 显示匹配行的文件及行号。
$ grep -n "unix" geekfile.txt
输出:
7、-v
反转模式匹配: 可以使用-v
选项显示与指定搜索模式不匹配的行。
$ grep -v "unix" geekfile.txt
输出:
8、^
匹配以字符串开头的行: ^
正则表达式模式指定行的开头。可以在 grep 中使用它来匹配以给定字符串或模式开头的行。
$ grep "^unix" geekfile.txt
输出:
9、$
匹配以字符串结尾的行: $
正则表达式模式指定行的结尾。可以在 grep 中使用它来匹配以给定字符串或模式结尾的行。
$ grep "os.$" geekfile.txt
输出:
10、-e
指定该选项的表达式,可以多次使用:
$ grep –e "unix" –e "linux" –e "open-source" geekfile.txt
输出:
11、 -f
file 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
$ cat > pattern.txt
Agarwal
Aggarwal
Agrawal
$ grep –f pattern.txt geekfile.txt
$ grep -f pattern.txt geekfile.txt noSuchFile.txt
输出:
12、从一个文件中打印 n 行: -A
在 结果后 打印搜索行和 n 行, -B
在 结果前 打印搜索行和 n 行, -C
在 结果前后 打印搜索行和 n 行。
- 语法:
$ grep -A[NumberOfLines(n)] [search] [file]
$ grep -B[NumberOfLines(n)] [search] [file]
$ grep -C[NumberOfLines(n)] [search] [file]
- 例子:
$ grep -A1 learn geekfile.txt
- 输出:
13、-r
查找文件所在 目录 即路径:
$ grep –r "linux" ./
输出:
Unix/Linux 中的 grep 命令相关推荐
- linux使用grep查找文件内容,Linux中使用grep命令搜索文件名及文件内容的方法
这篇文章主要介绍了Linux中使用grep命令搜索文件名及文件内容的方法,同时文中还介绍了将匹配结果高亮显示的方法,相当实用,需要的朋友可以参考下 从文件中搜索并显示文件名 当从多个文件中搜索时,默认 ...
- Linux中利用grep命令如何检索文件内容详解
前言 Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索.下面来一起看看Linux利用grep命令检索文件内容的详细介绍. 方法 ...
- linux中的grep命令用法
1.grep的作用 grep命令是用来查找指定字符串,文件中的行的位置,也可以利用管道符(|)从其他命令中获取执行结果,作为输入,获取指定字符串的位置. 指定参数 参数名 作用 -A 行数 在显示范本 ...
- Linux 中的grep命令单引号,不加任何参数以及双引号的作用
单引号: 可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么.单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换. 双引号: 把双引号内的 ...
- unix grep命令_Linux / UNIX中的Grep命令
unix grep命令 In Linux and Unix Systems Grep, short for "global regular expression print", i ...
- linux中的grep和egrep命令,Linux grep和egrep命令
在Linux中,grep是一个非常强大的文本搜索工具,它可以根据用户指定的文本搜索模式对目标文件进行逐行的搜索,然后将被模式匹配到的用户所需要的信息显示出来:那么,egrep呢?从字母组合上看,二者很 ...
- 【Linux/Unix】Linux中的seq命令
1 简介 Linux中的seq命令可以用来生成指定范围内.指定间隔的数字列表,常用在while.for和until等循环中. 2 语法及使用示例 2.1 语法 seq通常有三种语法形式: (1) se ...
- Unix/Linux 中的 shell 机制
Unix/Linux 中的 shell 机制 对于初次接触 Unix/Linux 系统的同学来说,Unix/Linux 系统与 Windows 系统最大的不同就是,操作 Unix/Linux 系统更多 ...
- linux cut命令学习,Linux中的cut 命令详解
今天小编要跟大家分享的文章是关于Linux中的cut 命令详解.cut 命令在Linux和Unix中的作用是从文件中的每一行中截取出一些部分,并输出到标准输出中.我们可以使用 cut 命令从一行字符串 ...
最新文章
- Halcon:(2)电路板检测实验
- java源码推荐_基于java的推荐系统实现源代码
- hadoop-hdfs-ha配置-搭建
- php yii框架源码,yii 源码解读
- 文件重命名批量处理(Matlab)
- 基准测试 ApacheBench ab学习
- debian10树莓派4安装mysql_树莓派 4 发布!新 OS 基于 Debian 10 Buster
- python django mysql结果获取_Django中从mysql数据库中获取数据传到echarts方式
- mysql索引和事务_MySQL事务和索引
- Js整理工具-开发必备
- Atitit 价值观与理念总结 Diy自力更生尽可能 提高独立性 减少依赖 大而全优先于小而美 适度分权防止集权导致大决策失误 方式多种多样 综合是王道 简单快速优先 努力实现人们喜闻乐见的服务 信
- python语法基础汇总
- 《秘密》· 东野圭吾
- ubuntu18.04两台电脑ntp时间同步
- 曹国伟:微博客将改变媒体发展形态
- Tecohoo VD-306S 全高清视频会议摄像机
- 常用的协议端口号(TCP and UDP)
- 10.Java面向对象进阶2
- Swift 替换字符串
- 世界杯营销战,中国企业赢麻了
热门文章
- 【如何用C++编程制作一个简单的游戏引擎】
- 深富策略:盐湖提锂+钴金属 引领市场走强
- 连续性微分方程详细推导过程
- 六部门发布38条举措支持民企改革发展转型升级
- web3j的基础用法-6合约的监听器事件Event和过滤器EthFilter,以及NullPointed,调用失败导致的bug解决
- 【无人机摄影测量技术】倾斜摄影测量外业控制点布设的方法
- html5手机浏览器后退刷新页面,浏览器收到什么样的response就会刷新页面?
- H265码流RTP封装方式详解
- 取6位有效数字c语言,float,double 的范围和有效数字怎么算出来的?
- qemu虚拟机ping不通网关