Linux:grep进阶(11)

这篇具有很好参考价值的文章主要介绍了Linux:grep进阶(11)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux:shell脚本:基础使用(4)《正则表达式-grep工具》_shell grep 全角字符串-CSDN博客https://blog.csdn.net/w14768855/article/details/132338954?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170833601716800226594687%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=170833601716800226594687&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-132338954-null-null.nonecase&utm_term=grep&spm=1018.2226.3001.4450这个是grep的基础使用,本章则搭配着正则表达式之上再加更多的参数进行演示


基础正则表达式

^word   搜索以word开头的。vi/vim中 ^ 一行的开头。

word$   搜索以word结尾的。vi/vim中 $ 一行的结尾。 \$

^$      表示空行

 .   代表且只能代表任意一个字符

 \       例:\. 只代表点本身,转义符号,让有特殊身份意义的字符,脱掉马甲,还原;

\n  换行符

\r  匹配回车

\w  匹配任意一个字符和数字

*       重复0次或多次前面的一个字符。

*      匹配所有字符。例:^.* 以任意多个字符开头,.*$以任意多个字符结尾。

[abc]    匹配字符集内的任意一个字符。

 [^abc]   匹配不包含 ^ 后的任意字符的内容。中括号里的 ^ 为取反。

 [1-9]    表示匹配括号内的范围内的任意字符。

a\{n,m\}  重复n到m次前一个重复的字符。若用egrep、sed -r可以去掉斜线。

\{n,\}    重复至少n 次前一个重复的字符。若用egrep、sed -r可以去掉斜线。

\{n\}     重复n 次前一个重复的字符。若用egrep、sed -r可以去掉斜线。

\{,m}\    重复少于m次。


扩展的正则表达式:

    +   重复一次或一次以上前面的一个字符。等同于\{n,}

    ?   重复0次或一次前面的一个字符。等同于\{,m}

    |   或者的意思,用或的方式查找多个符合的字符串。

    ()   找出括号内的字符串。

理解正则

^linux                       ##以linux开始

linux$                       ##以linux结束

linuxfan.                    ##匹配linuxfans等

coo[kl]                      ##匹配cool或cook

9[^5689]                     ##匹配91,92等,但不匹配95,98等

[0-9]                          ##匹配任意一个所有的数字

[a-z]|[A-Z]               ##匹配任意一个所有大小写字母,|属于扩展正则grep -E支持

colou?r                      ##匹配color或colour,但是不能匹配colouur

rollno-9+                 ##匹配rollno-9、rollno-99,rollno-999,但不匹配rollno-

co*l                           ##匹配cl,col,cool,coool等

ma(tri)x                    ##匹配matrix

[0-9]{3}                    ##匹配任意一个三位数,等于[0-9][0-9][0-9]

[0-9]{2,}                     ##匹配任意一个两位数或更多位的数字

[0-9]{2,5}                  ##匹配从两位数到五位数之间的任意一个数字

Oct (1st|2nd)            ##匹配Oct 1st或Oct 2nd

a\.b                            ##匹配a.b,但不能匹配ajb

[a-z0-9_]+\@[a-z0-9_]+\.[a-z]{2,4}                             ##匹配一个邮箱地址 

[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}            ##匹配IP地址 


 grep常用的参数

Linux:grep进阶(11),linux,mysql,运维


 grep用法演示

cat /etc/passwd | grep -e root -e tarro -e ftp

# 查询/etc/passwd  多个字符串  -e 后面就是一个指定的字符串可以指定多个

Linux:grep进阶(11),linux,mysql,运维

grep -R -o -n -E '[a-z0-9_]+\@[a-z0-9_]+\.[a-z]{2,4}' /etc/

目录下的所有文件中的邮件地址

-R递归,-n表示匹配的行号,-o只输出匹配内容,-E支持扩展正则表达式

grep -R -c 'HOSTNAME' /etc/ |grep -v "0$"

查找/etc/目录下文件中包含“HOSTNAME”的次数,-c统计匹配次数,-v取反

 grep -R -l 'HOSTNAME' /etc/ 

查找包含“HOSTNAME”的文件名,-l显示匹配的文件名,-L显示不匹配的文件名

cat /etc/passwd |grep -c bash$

统计系统中能登录的用户的个数,以bash结尾的个数        

ip a |grep -E '^[0-9]' |awk -F : '{print^C2}'

 获取系统中网卡名称

ip a |grep mtu|grep -o -E "[a-z]{3}[0-9]{1,}"

也是获取系统中网卡名称        

ifconfig ens33 |grep -E -o 'inet [^ ]*' |grep  -o '[0-9.]*'

获取指定网卡的ip地址        

ip a |grep inet |grep ens33 |grep -o "inet[^/]*" |grep -o "[0-9.]*"

获取指定网卡的ip        

ifconfig ens33 |grep -i ether |awk '{print $2}'

截取指定网卡的mac地址

cat 123 | grep -A 3 5

查找指定字符串并且连续显示向下3行

Linux:grep进阶(11),linux,mysql,运维

cat 123 | grep -B 3 5

查找指定字符串并且连续显示向上3行

Linux:grep进阶(11),linux,mysql,运维文章来源地址https://www.toymoban.com/news/detail-834089.html

到了这里,关于Linux:grep进阶(11)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【运维知识进阶篇】Zabbix5.0稳定版详解11(在Grafana中使用Zabbix插件:安装Grafana+安装Zabbix插件+添加数据源+Grafana直连MySQL数据库取值)

    本篇文章给大家介绍在Grafana中使用Zabbix插件,Zabbix扩展的很多,该讲的基本上全讲了,这篇文章结束后,就考虑换个内容了。 Grafana是用于可视化大型测量数据的开源程序,类似于Kibana,我们在里面使用zabbix插件,可以实现对其他主机的监控,监控数据能够更好的显示出来。

    2024年01月15日
    浏览(58)
  • Linux5.7 MySQL 高级(进阶) SQL 语句

    第四章 LINUX MySQL 高级(进阶) SQL 语句 一、高级SQL 语句 1.SELECT 显示表格中一个或数个字段的所有数据记录 2.DISTINCT 不显示重复的数据记录 3.WHERE 有条件查询 4.AND OR 且 或 5.IN 显示已知的值的数据记录 6.BETWEEN 显示两个值范围内的数据记录 7.通配符 通常通配符都是跟 LIKE 一起使用

    2024年02月09日
    浏览(50)
  • mysql进阶-修改linux服务器中MySQL的字符集

    linux 中 mysql8 默认的字符集是 latin1 ,在插入中文时会报错,所以一般在配置好mysql时需要修改字符集为 utf8 【又叫utfmb3,一般开发够用,一个字符用3个字节表示】或者 utfmb4 【一个字符用4个字节表示,如果存储emoji表情,必须用utfmb4】 1366 - Incorrect string value: xE4 xBA xBA(xE7 x94 x

    2024年02月14日
    浏览(48)
  • Linux 命令:grep

    文本查找或搜索工具。用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则grep会从标准输入设备读取数据。 同样可以配合正则表达式来

    2024年01月20日
    浏览(43)
  • Linux - grep 搜索用法

    获取到一个执行命令如 grep -rn \\\"hello\\\" /path/to/your/want/ ,在对应的目录下进行搜索,如\\\"hello\\\",但返回的结果不满意,存在未搜索到的项,后续定位发现,待搜索的是在一个软连接的文件中,所以未显示。

    2024年02月13日
    浏览(48)
  • 【MySQL进阶(一)】MySQL在Linux中的配置信息和数据备份工具

    MySQL在Linux中安装的话可以看这篇博客:MySQL在Linux中的安装,我觉得总结的很好。 当 MySQL 启动的时候,会从安装目录中加载软件数据,即使用 mysqld 工具初始化设置的 --basedir ,会从数据目录中读取数据,即设置的 --datadir 。这两个目录不要放在一起,避免 rm -rf mysql安装目录

    2024年02月16日
    浏览(57)
  • 一、linux grep命令详解

    目录 1. grep【擅长在文件中匹配文本】     1.1 命令参数      1.1.1 用法举例     1.2 grep搭配管道使用      1.2.1 grep和cat搭配管道      1.2.2 grep和ps搭配管道     1.3 扩展       1.3.1 常见的正则表达式       1.3.2 用于egrep 和 grep -e 的元字符扩展集 grep命令是一种强大的文本搜

    2024年02月12日
    浏览(43)
  • Linux:文本搜索命令grep

    相关阅读 Linux https://blog.csdn.net/weixin_45791458/category_12234591.html         grep是类Unix系统中用于搜索并打印文件中符合某种模式(pattern)的行。grep命令的的基本语法如下所示:         grep搜索命名的输入文件,即最后的[FILE...](如果没有文件或者如果单个连字符-(-)作为文件名给

    2024年02月07日
    浏览(51)
  • Linux grep命令详细教程

    [本文出自天外归云的博客园] Linux grep命令是一种非常常用的文本搜索工具,它可以在给定的文件中搜索匹配的字符串,并输出匹配的行。grep是全称“global search regular expression print”,可以识别正则表达式,并使用正则表达式进行搜索。 以下是  grep  的所有选项: -a, --text

    2023年04月27日
    浏览(45)
  • Linux grep 文本搜索工具

    目录 前言 基本用法 示例 常用选项 -i:忽略大小写 -r:递归搜索目录中的文件 -n:显示匹配行的行号 -v:显示不匹配的行 -l:只显示包含匹配文本的文件名,而不显示匹配行 -E:使用扩展的正则表达式语法 正则表达式语法 常见的文本模式 grep 是一个常用的文本搜索工具,通

    2024年02月08日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包