Linux 文本三剑客—grep命令
文章目录
- grep
- 常用选项
- 简单练习
- 正则表达式
- 网址查找
- IP地址查找
- 邮箱地址查找
- 练习1
- 练习2
grep
grep 通用正则表达式分析程序(global search regular expression and printing)
用途:使用正则表达式搜索文本,并把匹配的行列打印出来
格式:grep [选项]… 模式 目标文件
常用选项
-i:查找时忽略大小写
-v:反转查找,输出与模式不相符的行
-n:显示符合模式要求的行号
-r:递归搜索所有文件,从文件夹里的所有文件里面查找字符串
-o:只显示匹配的内容,不加 -o时候:会将匹配内容的那一行全部输出来
-A : 找到匹配行以及后几行
-B :输出匹配行以及前几行
-C :输出匹配行以及前后几行
#过滤,统计行数
[root@localhost lianxi]# cat /etc/passwd|grep sbin|wc -l
22
#过滤,不排除重复行
[root@localhost lianxi]# cat /etc/passwd|grep -o sbin|wc -l
25 # 过滤以/结尾的行
[root@localhost ~]# df -Th|tr -d "%"|grep "/$"
/dev/mapper/cl-root xfs 17G 4.4G 13G 26 /
[root@localhost ~]# df -Th|tr -d "%"|grep "/$" |awk '{print $6}'
26# 过滤包含“song”内容的文件
[root@192 ~]# grep -r -i "song" /lianxi
简单练习
1.筛选出有test的信息
grep "test" test.txt --从test.txt文件中筛选出有test的信息2.筛选出有test的信息,但要有test信息的上一行信息也显示
grep -B 1 "test" test.txt3.筛选出有test的信息,但要有test信息的下一行信息也显示
grep -A 1 "test" test.txt4.筛选出有test的信息,但要有test信息的上一行和下一行信息也显示
grep -C 1 "test" test.txt5.统计test信息在文件中出现了几次
grep -c 1 "test" test.txt
正则表达式
Linux grep/egrep命令详解
有数字,字母,符号组合而成的一个公式,用来表达某些特定含义
grep -E = egrep
-E, --extended-regexp 对扩展正则的支持
元字符:修饰特殊含义的特殊字符
basic regular expression 基本正则
如: \* . ^ $
extended regular expression 扩展正则
如: | + ? {}
#不显示以'#'开头的行和空行
grep -E -v -n "^$|^#" /etc/ssh/sshd_config
#显示有数字的行
grep -E -n "[0-9]" /etc/ssh/sshd_config
#显示日期行
grep -E -n "[0-9]{4}/[0-9]{2}/[0-9]{2}" /etc/ssh/sshd_config
[root@lamp-test lianxi]# cat name.txt |egrep "^song[a-z]+o$"
songxiaobao
songhuiqiao
[root@lamp-test lianxi]# cat name.txt |egrep "^song[a-z]{4,6}o$" 以song开头后面接4到6个字母最后以o结尾的字符串
songxiaobao
songhuiqiao
[root@lamp-test lianxi]# #查看某个进程加载了那些库
lsof - p 进程号
网址查找
写一个表示下面网址的正则表达式出来。例如:
http://www.baidu.com
http://www.sina.com
http://www.163.com
http://www.12306.cn
http://www.qillu.edu
rsync://www.github.com/abc
ftp://192.168.0.1
ftp://www.baidu.com
#字符串://字符串. 字符串. 字符串
egrep "[a-Z]+://([0-Z]+\.){2}[0-Z]+(\.[0-Z]+)?" web.txt
egrep "[a-Z]+://([0-Z]+\.)+[0-Z]+" web.txt
IP地址查找
0~255正则表达
0~99|100~199|200~249|250~255
||
[1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]
A类
section1:范围在1~126之间
section2和section3和section4范围:0-255之间
0~99|100~119|120~126
||
[1-9]?[0-9]|1[01][0-9]|12[0-6]
||
([1-9]?[0-9]|1[01][0-9]|12[0-6])(\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}
B类
section1:范围在128~191之间
section2和section3和section4范围:0-255之间
128~129|130~189|190~191
||
12[89]|1[3-8][0-9]|19[01]
||
"\b(12[89]|1[3-8][0-9]|19[01])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]) ){3}\b"
C类
section1:范围在192-223之间
section2和section3和section4范围:0-255之间
192~199|200~219|220~223
||
19[2-9]|2[01][0-9]|22[0-3]
||
(19[2-9]|2[01][0-9]|22[0-3])(\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}
[root@192 shell_lianxi]# netstat -antplu|egrep "(19[2-9]|2[01][0-9]|22[0-3])(\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}"
tcp 0 0 192.168.56.128:22 192.168.56.1:59594 ESTABLISHED 65020/sshd: root [p
tcp 0 48 192.168.56.128:22 192.168.56.1:59596 ESTABLISHED 65056/sshd: root [p
tcp 0 0 192.168.56.128:22 192.168.56.1:59598 ESTABLISHED 65058/sshd: root [p
tcp 0 0 192.168.56.128:22 192.168.56.1:59593 ESTABLISHED 65018/sshd: root [p
udp 0 0 192.168.56.128:68 192.168.56.254:67 ESTABLISHED 850/NetworkManager
邮箱地址查找
写一个表示邮箱的正则
feng@qq.com
1234feng@163.com
meng.xianhui@yahoo.cn
liudehua@sina.com
10001@qq.com
123_ui@12306.cn
qilu@qilu.edu
qilu@qilu.edu/fjdkfjk/fjdk
# 字符@字符.字符
egrep "[0-Z_.]+@[0-Z]+\.[0-Z]+" mail.txt
cat mail.txt |egrep "[0-Z_]+@[0-Z]+\.[0-z]+"
cat mail.txt |egrep -o "\<[0-Z_]+@[0-Z]+\.[0-z]+\>"
练习1
1.查找出/etc/passwd文件里以r开头的行egrep '^r' /etc/passwd2.查找出/etc/passwd文件里有bin的行,不区分大小写,并且显示行号
grep -ni 'bin' /etc/passwd3.查找出/etc/passwd不包含bash的行
grep -v 'bash' /etc/passwd4.查找出/etc/passwd里以bash结尾的行
grep 'bash$' /etc/passwd5.查找出/etc/passwd文件里的sbin,只是显示sbin,不显示其他的字符串,然后统计sbin的个数
grep -o 'sbin' /etc/passwd|uniq -c grep -o 'sbin' /etc/passwd|wc -l6.查找包含root或者halt的行egep "root|halt" passwd
练习2
1.进入/lianxi目录,复制/etc/passwd到当前目录下,然后对passwd进行操作
cp /etc/passwd .2、查找出当前passwd文件中以ftp或者mail开头的行,在屏幕上输出。
cat passwd |egrep "^ftp|^mail"
或egrep "^ftp|^mail" passwd3、查找出当前passwd文件中首行不是以r、m、f开头的行,在屏幕上输出。
cat passwd |grep -E -v "^r|^m|^f"
或egrep -v "^rmf " passwd
或egrep ^[^rmf] passwd4、查找出当前passwd文件中以bash结尾的行。
cat passwd |egrep "bash$"5、查找出/etc/login.defs文件中的有效行(不显示空行和注释行)。
cat /etc/login.defs |egrep -v "^#|^$"6、查找出/var/log/messages文档中有16个字母的单词?
cat /var/log/messages|grep -E "\b[a-Z]{16}\b"
或grep "\b[a-Z]{16}\b" /var/log/messages-202112157、查找出来/etc/passwd文件里用户名包含liu同时使用bash的用户cat /etc/passwd |grep "liu" |grep "bash"
或grep ".*liu.*bash.*" /etc/passwd8、查找/etc/ssh/sshd_config 里的有效行
cat /etc/ssh/sshd_config|egrep -v "^#|^$"
或grep -v "^$|^#" etc/ssh/sshd_config 9、查找出/etc/ssh/sshd_config 文件里的包含连续2个数字的行
egrep [0-9]{2} /etc/ssh/sshd_config
或 grep "\b[0-9]{2}\b" /etc/ssh/sshd_config10、查找出包含特殊字符的行
cat /etc/ssh/sshd_config|egrep "[^0-Z]"
或grep "[^0-Z]" /etc/ssh/sshd_config11、查找出不包含数字的行
cat /etc/ssh/sshd_config|egrep -v "[0-9]"
或 grep -v "[0-9]" /etc/ssh/sshd_config 12、查找出/var/log/secure里的ip地址出来
Linux 文本三剑客—grep命令相关推荐
- Linux文本三剑客--grep、sed、awk
Linux文本三剑客–grep.sed.awk 文章目录 Linux文本三剑客--grep.sed.awk 1.grep 1.1什么是grep 1.2使用grep 命令格式 命令参数 基本正则表表达式 ...
- Linux文本三剑客(grep、sed、awk)
目录 grep 1.什么是grep和rgrep? 2.使用grep 2.1.命令格式 2.2.命令功能 2.3.命令参数 3.实战演示 sed 1.认识sed 2.使用sed 2.1.命令格式 2.2 ...
- linux文本三剑客演讲稿,linux文本三剑客之grep
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正 ...
- linux文本三剑客,Linux文本处理三剑客之grep
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配到的行打印出来. grep的全称是:Global Search Regular Expression and ...
- linux 匹配文本中的ip,linux文本三剑客匹配网卡IP地址大PK(CentOS 7系统)
运维工程师在做配置的过程中很多时候都需要去获取目标服务器网卡上的IP地址,那究竟用什么方式获取更便捷了,博主今天就带大家使用linux文本三剑客分别获取一下网卡的IP地址,最后我们再来对比一下. 实验 ...
- Linux文本三剑客
Linux下文本三剑客 正则表达式 文本三剑客Grep 文本三剑客Sed 文本三剑客Awk awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三 ...
- linux文本处理常用命令
linux文本处理常用命令 linux文本处理命令:grep.sed.printf.awk 1.grep grep的作用是按行查找字符,输出包含字符的行. #从文件查询 grep 'hello' fi ...
- Linux中利用grep命令如何检索文件内容详解
前言 Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索.下面来一起看看Linux利用grep命令检索文件内容的详细介绍. 方法 ...
- Linux下的grep命令
Linux下的grep命令 作用:grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来.若不指定任何文件名 ...
最新文章
- canvas烟花锦集
- 多线程threading
- 6个步骤,告诉你如何用树莓派和机器学习DIY一个车牌识别器!(附详细分析)...
- 可自设定长度,根据各种标点符号去分隔字符串
- Cubieboard ARM 集群
- 记录一个找问题的经过
- CSP认证201509-3	模板生成系统[C++题解]:字符串处理、模拟、哈希表、引号里面有空格的字符串怎么读入
- TF之CNN:基于CIFAR-10数据集训练、检测CNN(2+2)模型(TensorBoard可视化)
- Changes in Android 7 Nougat
- 终极会话劫持工具SSClone
- python的变量在使用之前是否要进行声明_python – 如何在使用之前测试变量是否已初始化?...
- hibernate 高并发下遇到的大坑
- 《jQuery Mobile快速入门》—— 1.6 可主题化的设计
- jmeter(二十二)内存溢出原因及解决方法
- POJ 2159 解题报告
- Spring源码之创建AOP代理(补)
- 电路实验一阶电路误差分析_稳压电路的分析技巧
- 校园网wifi绕过认证软件的服务器垃圾总结
- 金沙滩51单片机74HC138 三八译码器的应用
- 搜索引擎(大数据检索)论述[elasticsearch原理相关]
热门文章
- vrrp路由器三种状态_虚拟路由器冗余协议(VRRP)
- hihocoder 1279(状压)
- ARCore平面与空间点云实现
- 网站做好了,该怎样去正确的营销
- ABB DSD系列DSDP170、DSDX404、DSDX452、DSDP140B、DSDO115A、DSDX453、DSDP150、DSDP140A
- [美文]-- 男人和小姨子看到一辆豪华的进口轿车,小姨子竟然说……
- 基于ssm的服装销售管理系统毕业论文
- 基于Simulink对调制-解调系统的仿真(BASK+BFSK+BPSK+QPSK)
- 当医药保健遇见“互联网+”和数据,就可以赢得整个江湖
- X86驱动:恢复SSDT内核钩子