[ Linux 命令 ] grep
一、grep是什么?
Linux grep命令是用于查找文件里符合条件行的shell命令。
二、为什么要使用grep?
在查找文件内容时候,通过使用grep指定条件,可以快速定位到文件里字符串所在的行,提高效率。
三、grep的基本用法
grep命令有三个:grep,egrep,fgrep
grep:根据模式,搜索文本,并将复合模式的问本行显示出来。
-i: 忽视大小写
--color: 高亮色显示匹配内容
-v: 反向查找,没有被模式匹配到的行
-o: 只显示被模式匹配到的字符串
-A: 显示匹配到的行下面N行
-B: 显示匹配到的行上面N行
-C: 显示匹配到的行上下行
正则表达式:
*: 匹配其前面的字符任意次
[root@node1 ~]# cat test
ab
aab
acb
adb
anmb
nmbnmbnmnbbbsdfb
[root@node1 ~]# egrep 'a*b' test # 其面前字符的任意长度例如:b ab aab aaaab
ab
aab
acb
adb
anmb
nmbnmbnmnbbbsdfb
?: 匹配其前面的字符1次或0次
[root@node1 ~]# egrep 'a?b' test # 匹配其前面的字符1次或者0次,如:ab b
ab
aab
acb
adb
anmb
nmbnmbnmnbbbsdfb
.: 匹配任意单个字符
[root@node1 ~]# egrep 'r..t' /etc/passwd # 匹配如:root rabt r/ft
root:x:::root:/root:/bin/bash
operator:x:::operator:/root:/sbin/nologin
ftp:x:::FTP User:/var/ftp:/sbin/nologin
[-]: 匹配指定范围内的任意单个字符
[root@node1 ~]# netstat -ntplu | egrep '4[0-9]00'
tcp 10.0.0.10: 0.0.0.0:* LISTEN /httpd
tcp 10.0.0.10: 0.0.0.0:* LISTEN /httpd
tcp 10.0.0.10: 0.0.0.0:* LISTEN /httpd
tcp 10.0.0.10: 0.0.0.0:* LISTEN /httpd
[^-]: 匹配指定范围外的任意单个字符
[root@node1 ~]# netstat -ntplu | egrep '4[^1-3]00'
tcp 10.0.0.10: 0.0.0.0:* LISTEN /httpd
{}: 匹配其前面字符的多少次
[root@node1 ~]# egrep 'a{1,2}b' test # 匹配内容 ab, aab
ab
aab
位置锚定:
^: 锚定行首,此字符后面的任意内容必须出现在行首
[root@node1 ~]# egrep '^root' /etc/passwd
root:x:::root:/root:/bin/bash
$: 锚定行尾,此字符后面的任意内容必须出现在行尾
[root@node1 ~]# egrep 'shutdown$' /etc/passwd # 匹配以shutdown结尾的行
shutdown:x:::shutdown:/sbin:/sbin/shutdown
^$: 空白行
[root@node1 ~]# cat abc.txt
a b c
[root@node1 ~]# egrep '^$' abc.txt [root@node1 ~]# egrep '^$' abc.txt | wc -l # 可以统计出来有两行是空格行
\<或\b: 其后面的任意字符必须作为单词首部出现
[root@node1 ~]# cat test.txt
This is root.
The user is mroot.
rooter is a dog's name.
mrooter is not a word.
[root@node1 ~]# egrep 'root\>' test.txt # 匹配词尾的
This is root.
The user is mroot.
\>或\b: 其前面的任意字符必须作为单词尾部出现
[root@node1 ~]# cat test.txt # 记住这里的词首不是行首。因此 This is root. 是没问题的
This is root.
The user is mroot.
rooter is a dog's name.
mrooter is not a word.
[root@node1 ~]# egrep '\<root' test.txt
This is root.
rooter is a dog's name.
[ Linux 命令 ] grep的更多相关文章
- linux 命令grep
linux 命令grep grep命令用来搜索文本,或从给定的文件中搜索行内包含了给定字符串或单词的文件.通常来说,grep显示匹配的行.使用grep来搜索包括一个或多个正则表达式匹配到的文本行,然后 ...
- 【linux】linux命令grep + awk 详解
linux命令grep + awk 详解 grep:https://www.cnblogs.com/flyor/p/6411140.html awk:https://www.cnblogs.com ...
- Linux 命令 - grep: 正则搜索文本
grep 搜索文本文件中与指定正则表达式匹配的行 命令格式 grep [OPTIONS] PATTERN [FILE...] 命令参数 Generic Program Information --he ...
- Linux 命令——grep | 正则表达式
感觉讲的很详细,瞬间懂了grep,正则. from: here 简介 grep (global search regular expression(RE) and print out the line ...
- 菜鸟学Linux命令:grep配合ls等使用
linux grep命令 (global search regular expression(RE) and print out the line )是一种强大的文本搜索工具,它能使用正则表达式搜索文 ...
- Linux命令-grep
grep命令用于对文本进行搜索,格式为“grep [选项] [文件]” 搜索某个关键词:"grep 关键词 文本文件" 参数说明 -b 将可执行文件当做文本文件来搜索 -c 仅显示 ...
- (转)Linux命令grep
场景:grep命令在文件搜索中经常会使用到,所以熟练掌握该命令对于日常日志搜索相当有必要! Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.g ...
- 日志快速筛选 之 linux命令grep|uniq|wc|awk
以前我个人的观念是,在线上运行的东西尽量不要记什么流水日志. 但是后来我变了,发现在线上记日志是一个绝对有必要的东西,尤其是在当下很流行的微服务的推动下,没有日志的帮助,犹如一个睁眼瞎,排查问题基本靠 ...
- linux命令-grep+正则表达式用法
目标文件/etc/passwd,使用grep命令或egrep 1.显示出所有含有root的行:egrep 'root' passwd 2.输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的 ...
随机推荐
- 【iOS开发】iOS对UIViewController生命周期和属性方法的解析
iOS对UIViewController生命周期和属性方法的解析 一.引言 作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有 ...
- OpenCV尺寸调整
#include<cv.h> #include<highgui.h> int main(int argc, char** argv) { IplImage* img = cvL ...
- 【工作感悟】——揭开“PM”的面纱
[前言] 上次跟大家分享了面试的故事,小编觉得效果还不错,因此小编决定把工作感悟系列写下去,不过时间就不好说了.希望小伙伴们在评论列表中发表自己的看法和观点,积极参与啦~~ [背景] 初来Y公司,作为 ...
- [洛谷P4291][HAOI2008]排名系统
题目大意:三种操作: $+Name\;Socore:$上传最新得分记录,把以前的记录删除. $?Name:$ 查询玩家排名.如果两个玩家的得分相同,则先得到该得分的玩家排在前面. $?Index:$ ...
- [codeforces] 633C Spy Syndrome 2
原题 Trie树+dp 首先,我们可以简单的想到一种dp方式,就是如果这一段可以匹配并且可以与前一段接上,那么更新dp[i]为当前字符串的编号,然后倒推就可以得到答案. 但是,显然我们不能O(m)比较 ...
- 【BZOJ 1592】[Usaco2008 Feb]Making the Grade 路面修整 dp优化之转移变状态
我们感性可证离散(不离散没法做),于是我们就有了状态转移的思路(我们只考虑单不减另一个同理),f[i][j]到了第i块高度为j的最小话费,于是我们就可以发现f[i][j]=Min(f[i-1][k]) ...
- (一)STM32固件库详解(转载)
本篇博文是转载自emouse,因为不能直接转载,所以是复制过来再发布的. emouse原创文章,转载请注明出处http://www.cnblogs.com/emouse/ 1.1 基于标准外设库的 ...
- 记录一发wm_concat()函数排序的问题
需求:需要将列转行之后的工序按照待执行工序号排序,如果一样按工序号排 解决方法如下: select part_no, max(ywggx) ywggx from(select mt.part_no , ...
- Kafka自我学习2-Zookeeper cluster
Test enviroment : zoo1, zoo2, zoo3 cluster 1. Install zookeeper, package in kafka [root@zoo1 ~]# pwd ...
- babel-preset-es2015,babel-polyfill 与 babel-plugin-transform-runtime
babel-preset-es2015 是一个babel的插件,用于将部分ES6 语法转换为ES5 语法.转换的语法包括: 箭头函数 var a1 = () => 1 编译为 var a1 = ...