grep命令
grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。
用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
语法格式
grep [option] pattern file
参数选项
-c:计算找到‘搜索字符串’的行数-o:指数出匹配的内容-i:不区分大小写-n:显示匹配内容的行号-r:当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作-v:反向选择,即没有‘搜索字符串’内容的行-l:列出文件内容符合指定的范本样式的文件名称-E:扩展 grep,即 egrep,可以使用扩展正则表达式--color=auto搜索关键词显示颜色-V:显示软件版本信息
grep正则表达式元字符集
^:锚定行的开始如:'^grep' 匹配所有以 grep 开头的行$:锚定行的结束如:'grep$' 匹配所有以 grep 结尾的行.:匹配一个非换行符的字符如:'gr.p' 匹配 gr 后接一个任意字符,然后是 p*:匹配零个或多个先前字符如:' *grep' 匹配所有一个或多个空格后紧跟 grep 的行。 .* 一起用代表任意字符[ ]:匹配一个指定范围内的字符如:'[Gg]rep' 匹配 Grep 和 grep[^ ]:匹配一个不在指定范围内的字符如:'[^A-FH-Z]rep' 匹配不包含 A-F 和 H-Z 的一个字母开头,紧跟 rep 的行(..):标记匹配字符如:'(love)',love 被标记为1:锚定单词的结束如:'grep>' 匹配包含以grep结尾的单词的行x{m}:连续重复字符 x,m 次如:'o{5}' 匹配包含连续5个o的行x{m,}:连续重复字符 x,至少 m 次如:'o{5,}' 匹配至少连续有5个 o 的行x{m,n}:连续重复字符 x,至少 m 次,不多于 n 次如:'o{5,10}' 匹配连续 5-10 个 o 的行w:匹配一个文字和数字字符也就是 [A-Za-z0-9]如:'Gw*p' 匹配以 G 后跟零个或多个文字或数字字符,然后是pW:w 的反置形式,匹配一个非单词字符如:点号句号等。W* 则可匹配多个b:单词锁定符如: 'bgrepb' 只匹配 grep,即只能是 grep 这个单词,两边均为空格
示例1
通过grep命令显示文件和输入流中和参数匹配的行,如显示文件/etc/passwd文件中包含文本root的所有行:
1、首先查看/etc/passwd文件中的内容
[root@localhost etc]# cat /etc/passwd
![5838b004c37597eddcdd0ca89e900f3a.png](https://img-blog.csdnimg.cn/img_convert/5838b004c37597eddcdd0ca89e900f3a.png)
2、通过grep命令查询
[root@localhost etc]# grep root /etc/passwd
![73cee226c1432e25a6c83ac27975ae74.png](https://img-blog.csdnimg.cn/img_convert/73cee226c1432e25a6c83ac27975ae74.png)
示例2
显示文件/etc 文件夹中所有包含root的文件
[root@localhost ~]# grep root /etc/*
![d96e1a3f4d3892719954efbf87dd5c63.png](https://img-blog.csdnimg.cn/img_convert/d96e1a3f4d3892719954efbf87dd5c63.png)
示例3
搜索某一文件中,显示包含某一字符串的行数
1、查看test1.txt文件内容
[root@localhost mytest]# vi test1.txt
![38d37a0718e771e82139bc58f26fb255.png](https://img-blog.csdnimg.cn/img_convert/38d37a0718e771e82139bc58f26fb255.png)
2、查询test1.txt文件中有多少行包含“the”字符串
[root@localhost mytest]# grep -c the test1.txt
![efca783a5ce25e5928d2a8b1a0430c96.png](https://img-blog.csdnimg.cn/img_convert/efca783a5ce25e5928d2a8b1a0430c96.png)
3、查询test1.txt文件中有多少行包含“the”字符串的所有文本
[root@localhost mytest]# grep -i the test1.txt
![c921a15aaec9701d6b9ea9c539b339c2.png](https://img-blog.csdnimg.cn/img_convert/c921a15aaec9701d6b9ea9c539b339c2.png)
4、查询test1.txt文件中有多少行包含“the”字符串的所有文本的行号
[root@localhost mytest]# grep -n the test1.txt
![90b76204fa709e800fffcb2be3438375.png](https://img-blog.csdnimg.cn/img_convert/90b76204fa709e800fffcb2be3438375.png)
less命令
当要查看的文件过大或者内容多得需要滚动屏幕的时候,可以使用less命令。
命令格式:
less [参数] 文件
命令功能:
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
命令参数
-b 设置缓冲区的大小-e 当文件显示结束后,自动离开-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件-g 只标志最后搜索的关键词-i 忽略搜索时的大小写-m 显示类似more命令的百分比-N 显示每行的行号-o 将less 输出的内容在指定文件中保存起来-Q 不使用警告音-s 显示连续空行为一行-S 行过长时间将超出部分舍弃-x 将“tab”键显示为规定的数字空格/字符串:向下搜索“字符串”的功能?字符串:向上搜索“字符串”的功能n:重复前一个搜索(与 / 或 ? 有关)N:反向重复前一个搜索(与 / 或 ? 有关)b 向后翻一页d 向后翻半页h 显示帮助界面Q 退出less 命令u 向前滚动半页y 向前滚动一行空格键 滚动一行回车键 滚动一页[pagedown]: 向下翻动一页[pageup]: 向上翻动一页
示例1
查看test1.txt文件
[root@localhost mytest]# less test1.txt
![fefc98018082793f28669593c7ca9fdd.png](https://img-blog.csdnimg.cn/img_convert/fefc98018082793f28669593c7ca9fdd.png)
less命令可以将内容分屏显示,按空格键可查看下一屏,B键查看上一屏,Q键退出。
示例2
ps查看进程信息并通过less分页显示
[root@localhost mytest]# ps -ef |less
![d24729546cdc79cc5c8af34e5144e53e.png](https://img-blog.csdnimg.cn/img_convert/d24729546cdc79cc5c8af34e5144e53e.png)
示例3
浏览多个文件
[root@localhost mytest]#less less log1.log log2.log
输入 :n后,切换到 log1.log
输入 :p 后,切换到2.log
示例4
grep 和less配合查询,当查询内容过多时,可以提供分页
[root@localhost mytest]# grep a test1.txt | less
![65e3b18b18d660fb2c4192711ed59bdc.png](https://img-blog.csdnimg.cn/img_convert/65e3b18b18d660fb2c4192711ed59bdc.png)
全屏导航
ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏