Linux||正则表达式及grep命令
以下内容首发自公众号“小汪Waud”。
本期介绍在Linux环境下的正则表达式及grep命令。
正则表达式(Regular Expression)是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些字符的特定组合,组成一个“规则字符串”,这个字符串用来表达对字符串的一种过滤逻辑。
正则表达式基本上是一种表示法,只要程序支持这种表示法,该程序就可以用来作为正则表达式的字符串处理之用。如vi、grep、awk、sed等程序支持正则表达式,所以可以使用正则表达式的特殊字符来进行字符串的处理。但例如cp、ls等命令并不支持正则表达式,所以只能用自己的通配符。
正则表达式依照 不同的严谨度 分为:基础正则表达式和扩展正则表达式。
注意!
grep是一种强大的文本搜索工具,可以使用 正则表达式匹配模式 查找文件里符合条件的字符串,并打印出来。
有点类似于WORD里的查找功能。
grep支持三种正则表达式语法:Basic、Extended和perl兼容。 如果没有提供正则表达式类型,grep将搜索模式解释为基本的正则表达式。要将模式解释为扩展正则表达式,请使用-E。
查看grep的帮助文档,如下
基本用法
grep [OPTION]... PATTERN [FILE]...
高级用法
grep [-A] [-B] [--color=auto] "查找字符" [模式] [文件]
常用参数
首先通过cat命令查看samples.txt的内容,如下图
如果想检索以K为行首的行,通过以下命令即可得到
如果想检索以Z为行尾的行,通过以下命令即可得到
如果想检索三个字符其中前面为K,后面为D中间字符,为任意字符,通过以下命令即可得到
参考资料
https://www.runoob.com/linux/linux-comm-grep.html
https://www.bilibili.com/video/BV1Yy4y117SX?p=12
Linux||正则表达式及grep命令
本期介绍在Linux环境下的正则表达式及grep命令。正则表达式(Regular Expression)是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些字符的特定组合,组成一个“规则字符串”,这个字符串用来表达对字符串的一种过滤逻辑。正则表达式基本上是一种表示法,只要程序支持这种表示法,该程序就...
Linux正则表达式与通配符
正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。 只有掌握了正则表达式,才能全面地掌握 Linux 下的常用文本工具(例如:grep、egrep、GUN sed、 Awk 等) 的用法 grep、sed、awk天然支持正则 grep -v代表反选,反向选择匹配到的内容 grep -E代表使用扩展正则 grep...
Linux正则表达式
1.grep : 最早的文本匹配程序,使用POSIX定义的基本正则表达式(BRE)来匹配文本。2.egrep : 扩展式grep,其使用扩展式正规表达式(ERE)来匹配文本。3.fgrep : 快速grep,这个版本匹配固定字符串而非正则表达式。并且是唯一可以并行匹配多个字符串的版本。如下简单的介绍grep命令:语法格式:grep [options...
Linux中的常用符号解释
二、转义字符:“\/” 和DOS的命名规则不同的是,通配符“*”、“?”是可以在文件名中使用的。如果要操作的文件名中包含有这些特殊符号,我们可以结合“\/”来表达。下面是通配符和正则表达式的一个简短列表:匹配所有字符 ? 匹配字串中的一个字符 \/* 匹配“*”字符 \/? 匹配“?”字...
linux 里正则表达式 [.*] 怎么理解?
. 代表任意单字符,* 代表0个或0个以上的前面的字符 .*代表任意字符
Linux基本操作10---正则表达式与文件格式化处理
1 简单的说正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易的达到查找,删除,替换某特定字符串的处理程序 2 grep在数据中查找一个字符串时,是以整行为单位来进行数据的选取的,也就是说假如一个文件内有10行,那么其中两行...
正则表示式(^#|^("#)).*$")是什么意思?
正则表示式,又称规则表示式。正则表示式通常被用来检索、替换那些符合某个模式(规则)的文字。许多程式设计语言都支援利用正则表示式进行字串操作。例如,在Perl中就内建了一个功能强大的正则表示式引擎。正则表示式这个概念最初是由Unix中的工具软体(例如sed和grep)普及开的。正则表示式通常缩写成“...
Linux正则表达式教程:Grep Regex示例
[TOC]一些常用的正则表达式命令是tr,sed,vi和grep。下面列出了一些基本的正则表达式。我们来看一个例子吧。执行cat示例以查看现有文件的内容 搜索包含字母'a'的内容。' ^ '匹配字符串的开头。让我们搜索一下STARTS的内容 仅过滤以字符开头的行。将忽略开头不包含字符“a”的行。让我们看看另一个...
linux三剑客教程 提升运维效率
1、Linux 三剑客是(grep,sed,awk)三者的简称,熟练使用这三个工具可以提升运维效率。2、Linux 三剑客以正则表达式作为基础,而在Linux系统中,支持两种正则表达式,分别为“标准正则表达式”和“扩展正则表达式”。3、在掌握好正则表达式后,将具体讲解三剑客的用法。4、可以看到标准正则表达的使用过程中...
正则表达式匹配是什么?
在Linux Shell脚本中,`=~` 是一个运算符,用于正则表达式匹配。下面是对这一运算符的 1. 正则表达式匹配运算符 在shell脚本中,`=~` 用于字符串的模式匹配。该运算符的左侧通常是一个变量或表达式,右侧则是正则表达式模式。当左侧的值与右侧的正则表达式模式匹配时,`=~` 会返回真。2. 使用场景...
笃黎丁苯: grep默认只能识别基本的正则表达式,如果需要高级的,需要这样:grep -E 'A.*B|B.*A' filename 可以找到符合要求的,或者使用awk:awk '/A/&&/B/' filename
赞皇县15170091252: linux中grep命令的使用 - ?
笃黎丁苯: 1、linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. 2、格式 grep[options] 3、主要参...
赞皇县15170091252: 在linux里面ps - ef | grep tomcat 什么意思 - ?
笃黎丁苯: ps -ef的意思是以长格式显示所有进程,“|”是管道,意思是前面ps的输出做为后面的输入,然后grep tomcat是在所有进程里查找与字符tomcat有关的进程,并显示出来.ps命令就是最根本相应情况下也是相当强大地进程查看命令 ps[选项]-e显...
赞皇县15170091252: linux中grep和find的区别 - ?
笃黎丁苯: 这是两个不同的命令,关于grep:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户....
赞皇县15170091252: linux命令里,grep * 是什么意思? - ?
笃黎丁苯: 任意一个字节 . 与重复字节 * 这两个符号在正则表达式的意义如下: . (小数点):代表『一定有一个任意字节』的意思; * (星号):代表『重复前一个字符, 0 到无穷多次』的意思,为组合形态假设我需要找出 g??d 的字串,亦即共有四个...
赞皇县15170091252: linux的grep命令,解释一下perl正则表达式在这里怎么用,以及语法 - ?
笃黎丁苯: grep -P 'Regular expressions' 其中 -P 告诉grep使其支持perl正则表达式 'Regular expressions' 此处就是perl正则表达式具体的语法跟perl中的一模一样
赞皇县15170091252: 正则表达式相关:grep和正则表达式有什么关系或联系?或者说grep是什么?常看到… - ?
笃黎丁苯: grep 是个工具,或者说是个命令,Linux/Unix 的标准组件.展开全部 grep 可以用来查找或提取文本,查找的格式可以是普通的字符串,也可以是正则表达式.正则表达式可以实现很复杂的字符串查找.其实 perl 才是使用正则表达式的代表性语言,perl 需要写代码,而 grep 不用写代码.
赞皇县15170091252: 什么过滤操作?在Linux中如何实现? - ?
笃黎丁苯: 过滤操作就是指在一大堆文本信息中筛选出你关心的数据. 一般用 ls + 通配符,或 grep, sed 或 awk 这些支持正则表达式的工具都可以实现过滤操作. 比如: ls *.jpg #过滤出当前目录下以jpg为后缀的所有文件,这是通配符用法 grep "abc" file.txt #过滤出file.txt中包含abc的行,这里没有使用正则表达式 ls | grep "[a-z][0-9].csv" #从ls的结果中过滤出文件名格式为一个字母加一位数字并以.csv为后缀的文件名,这里用了正则表达式(字母集合[a-z]与数字集合[0-9])
赞皇县15170091252: Linux中,什么是正则表达式 - ?
笃黎丁苯: 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念.正则表通常被用来检索、替换那些符合某个模式(规则)的文本.
赞皇县15170091252: linux里面的规则表达式、正则表达式、扩展表达式的定义 - ?
笃黎丁苯: 规则表达式=正则表达式 ,都是 regular expression 他的定义是 "是用某种模式去匹配一类字符串的一个公式" 扩展表达式我想你说的应该是 扩展正则表达式 他是正则表达式规范的补充 这个就没什么定义了 也就是添加了一些范围匹配和通配匹配 比如 . [a-z] 等 这些都是扩展正则表达式的范围 另外说一点 grep命令支持的正则表达式是标准正则表达式 ,而 egrep (grep -E) 支持扩展正则表达式匹配 事实上 目前大部分使用的正则表达式都是扩展正则表达式