Linux grep命令 -- 三剑客老三
常用选项
-E :开启扩展(Extend)的正则表达式。
-i :忽略大小写(ignore case)。
-v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
-n :显示行号
-w :被匹配的文本只能是单词,而不能是单词中的某一部分。
-c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
-o :只显示被模式匹配到的字符串。
--color :将匹配到的内容以颜色高亮显示。
-A n:显示匹配到的字符串所在的行及其后n行,after
-B n:显示匹配到的字符串所在的行及其前n行,before
-C n:显示匹配到的字符串所在的行及其前后各n行,context
基本正则模式匹配
匹配字符:
. :任意一个字符。
[abc] :表示匹配一个字符
[a-Z] :表示匹配一个字符
[^123] :匹配一个字符,这个字符是除了1、2、3以外的所有字符。
对于一些常用的字符集,系统做了定义:
[a-Z] 等价于 [[:alpha:]]
[0-9] 等价于 [[:digit:]]
[a-Z0-9] 等价于 [[:alnum:]]
tab,space 等空白字符 [[:space:]]
[A-Z] 等价于 [[:upper:]]
[a-z] 等价于 [[:lower:]]
标点符号 [[:punct:]]
匹配次数:
\{m,n\} :匹配其前面出现的字符至少m次,至多n次。
\? :匹配其前面出现的内容0次或1次,等价于\{0,1\}。
* :匹配其前面出现的内容任意次,等价于\{0,\},所以 ".*" 表述任意字符任意次,即无论什么内容全部匹配。
位置锚定:
^ :锚定行首
$ :锚定行尾。技巧:"^$"用于匹配空白行。
\b或\<:锚定单词的词首。如"\blike"不会匹配alike,但是会匹配liker
\b或\>:锚定单词的词尾。如"\blike\b"不会匹配alike和liker,只会匹配like
\B :与\b作用相反。
分组及引用:
\(string\) :将string作为一个整体方便后面引用
\1 :引用第1个左括号及其对应的右括号所匹配的内容。
\2 :引用第2个左括号及其对应的右括号所匹配的内容。
\n :引用第n个左括号及其对应的右括号所匹配的内容。
扩展正则模式匹配
匹配字符:
跟基本正则用法一样
匹配次数:
{m,n} :匹配其前面出现的字符至少m次,至多n次。
? :匹配其前面出现的内容0次或1次,等价于\{0,1\}。
* :匹配其前面出现的内容任意次,等价于\{0,\},所以 ".*" 表述任意字符任意次,即无论什么内容全部匹配。
+:匹配前面出现的内容1次或1次以上
位置锚定:
跟基本正则用法一样
分组及引用:
(string) :将string作为一个整体方便后面引用
\1 :引用第1个左括号及其对应的右括号所匹配的内容。
\2 :引用第2个左括号及其对应的右括号所匹配的内容。
\n :引用第n个左括号及其对应的右括号所匹配的内容。
扩展增用法:
str | num:匹配 str 或 num 内容
1、搜索/var/log/secure下,失败的log。
[root@maintain data]# grep -i 'failed' /var/log/secure
Sep :: localhost login: pam_systemd(login:session): Failed to release session: Interrupted system call
Sep :: maintain login: FAILED LOGIN FROM tty1 FOR (unknown), User not known to the underlying authentication module
Sep :: maintain sshd[]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
Sep :: maintain sshd[]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
Sep :: maintain sshd[]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
Sep :: maintain sshd[]: pam_systemd(sshd:session): Failed to release session: Interrupted system call
2、在/etc/selinux/config下,忽略#号开头和空白行
[root@maintain data]# egrep -v '^#|^$' /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
3、只匹配Gogo的行 和 只匹配Gogo的单词
[root@maintain data]# cat reg.txt
Zhang Dandan :::
Zhang Xiaoyu :::
Meng Feixue :::
Wu waiwai :::
Liu Bingbing :::
Wang Xiaoai :::
Zi Gege :::
Li Youjiu :::
Lao Nanhai :::
[root@maintain data]# grep -w 'Gege' reg.txt
Zi Gege :::
[root@maintain data]# grep -o 'Gege' reg.txt
Gege
4、显示/etc/passwd文件中不以/bin/bash结尾的行
grep -v "/bin/bash$" /etc/passwd
5、找出/etc/passwd文件中两位数或三位数
grep '[1-9]\{1,2\}[1-9]' /etc/passwd
6、找出/etc/rc.d/rc.sysinit或/etc/grub2.cfg文件中,以至少一个空白字符开头,且后面非空白字符的行
grep '^[[:space:]]\+[[:alpha:]]' test.txt
7、找出”netstat -tan”命令的结果中以’LISTEN’后跟0,1或多个空白字符结尾行
netstat -tan | grep 'LISTEN[[:space:]].*$'
8、创建test.txt文件内容如下:
He love his lover
He likes his lover
She likes her liker
She loves her liker
查找单词中出现 l和e之间存在两个字符,且一行中要出现两次查找到的内容。
[root@maintain data]# cat > test.txt <<EOF
> He love his lover
> He likes his lover
> She likes her liker
> She loves her liker
> EOF
[root@maintain data]# grep '\(l..e\).*\1' test.txt
He love his lover
She likes her liker
9、找出/proc/meminfo文件中,所有在大写或小写S开头的行,至少有两种实现方式
egrep "^(S|s)" /proc/meminfo
egrep ^[Ss] /proc/meminfo
10、显示当前系统上root、Python、maintain用户的相关信息
egrep ^\(root\|python\|maintain\) /etc/passwd
11、找出/etc/rc.d/init.d/functions文件中某单词后面跟一个小括号的行
grep "[[:alpha:]]\+(" /etc/rc.d/init.d/functions
egrep '[[:alpha:]]\+|\)|\(' /etc/rc.d/init.d/functions
12、使用echo命令输出一绝对路径,使用egrep取出几名
echo /home/maintain/test.txt | grep -E -o "[^/]+/?$"
13、进一步:取出其路径名;类似于对执行dirname命令结果
找出ifconfig命令结果中的1-255之间的数值
ifconfig eth0 | egrep -o "[1-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]"
14、添加用户bash,testbash,basher以及nologin(其中shell为/sbin/nologin),而后找出/etc/passwd文件中用户名同shell名行
egrep "(^[[:alnum:]]+\>).*\1$" /etc/passwd
Linux grep命令 -- 三剑客老三的更多相关文章
- linux grep命令
linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressio ...
- linux grep命令详解
linux grep命令详解 简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来 ...
- 如何使用Unix/Linux grep命令——磨刀不误砍柴工系列
http://man.linuxde.net/grep ---------------------------------------------------- 如何使用Unix/Linux gre ...
- linux grep命令总结
风生水起善战者,求之于势,不责于人,故能择人而任势. 博客园 首页 新随笔 联系 订阅 管理 posts - 791, comments - 394, trackba ...
- Linux grep命令详解[备份]
linux grep命令 1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressi ...
- linux grep命令(linux在文件中搜索内容)
转自:https://www.cnblogs.com/end/archive/2012/02/21/2360965.html linux grep命令 1.作用Linux系统中grep命令是一种强大的 ...
- Linux awk命令 --三剑客老大
Linux awk命令 --三剑客老大 基本用法: awk [参数] ['找谁{干啥}'] 文件 参数: -F 分隔符 -v 创建或修改awk变量 OFS 输出分割符 awk显示每一列的时候分隔 ...
- linux grep 命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
- Linux grep 命令中的正则表达式详解
在 Linux .类 Unix 系统中我该如何使用 Grep 命令的正则表达式呢? Linux 附带有 GNU grep 命令工具,它支持扩展正则表达式(extended regular expres ...
随机推荐
- firefox浏览器插件---网址优化
安装:YSlow插件 之后还必须安装firebug.否则YSlow不能使用. 安装:firebug 下面就可以了
- SAS数据挖掘实战篇【一】
SAS数据挖掘实战篇[一] 1数据挖掘简介 1.1数据挖掘的产生 需求是一切技术之母,管理和计算机技术的发展,促使数据挖掘技术的诞生.随着世界信息技术的迅猛发展,信息量也呈几何指数增长,如何从巨量.复 ...
- Ubuntu上挂载源代码,docker容器中共享这个原代码,实现自动部署
https://www.jianshu.com/p/23465dc86d3e 地址 5.3. 挂载源代码 为了在宿主机上创建.NET Core 项目,这个时候我们就需要在Linux宿主机上安装.N ...
- Sqlserver实现故障转移 — AlwaysOn实现故障转移(4)
目的:在已经加域的计算机上安装sqlserver2012,并配置系统级故障转移及数据库,实现AlwayOn. 域控的建立详见:https://www.cnblogs.com/xiaoerlang90/ ...
- PTA --- 天梯赛 L1-028 判断素数
L1-028 判断素数 (10 point(s)) 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231 ...
- RabbitMQ和Kafka对比
# 前言 开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措.对于RabbitMQ和Kafka,到底应该选哪个? # R ...
- Spring MVC 根容器和子容器
整合 spring mvc 根容器和子容器 public class TestWebInitializer extends AbstractAnnotationConfigDispatcherServ ...
- 二 MyBatis 从入门到进阶 2 Maven 入门
1 Maven 的使用 1.1 本地仓库与中央仓库 本地仓库:Window \ Preferences \ Maven \ User Settings \ Local Repository 中央仓库: ...
- Sql Server使用TOP实现Limit m,n的功能
转载自:https://blog.csdn.net/weixin_41798450/article/details/88885891 在MySQL中,可以用 Limit 来查询第 m 列到第 n 列的 ...
- linux shadow文件格式弱口令解密
shadow格式弱口令为linux弱口令,通过kali linux 终端 john --w=字典 加上shadow文件, 扫描完成之后通过john --show 加上shadow文件出结果