关于grep和egrep的一些整理

word2vector入门教程 摘要: 网上已经有许多对w2v的介绍了,这里只是做一个简单的概括。下面这篇文章我认为是关于W2V写的比较好的文章,读者有兴趣可以先参考一下: w2v参考文章1 另外一篇是关于Skip-Gram和CBow的介绍。 Skip-Gram&CBOW 逻辑比较清晰的综述文章: 综述文章 数学原理很清晰很短的一篇文章(也有关于负采样的简单说明) 参考文章 1.什么 阅读详情

 

 

其实主要是正则表达式中的一些特殊语法。在网上找的几篇文章,截取相关部分贴在了下面,方便以后翻阅。

参考:http://hi.baidu.com/sei_zhouyu/item/c18e1a950d2e9eb5cc80e558

            http://blog.mcuol.com/User/pclli/Article/55269_1.htm

还有万能的百度百科:http://baike.baidu.com/view/94238.htm

 

(little tip:正则表达式中的[[:space:]]跟空格不是完全一样,他出代表空格字符外,还可代表'\t'。假如hello.c文件中有一行“int main()”,如果文件中int 和main之间用的是空格,则egrep "int " hello.c 和egrep"int[[:space:]]" hello.c都可以找到这一行,但如果int 和main之间使用TAB键隔开的,则用egrep"int[[:space:]]" hello.c仍可以找到这一行,但用egrep "int " hello.c就不行。)

 

grep:

格式: grep [option] pattern filename 注意: pattern如果是表达式或者超过两个单词的, 需要用引号引用. 可以是单引号也可双引号, 区别是单引号无法引用变量而双引号可以.

grep '\<Tom\>' file   包含单词Tom的行
grep 'Tom savage' file 包含Tom savage的行
grep '^Tommy' file 包含以Tommy开头的行
grep '\.bak$' file 包含以.bak结束的行
grep '[Pp]yramid' file 包含pyramid 或Pyramid的单词的行
grep '[A-Z]' file 包含至少一个大写字母的行
grep '[0-9]' file 包含至少一个数字的行
grep '[A-Z]...[0-9]' file 包含五个字符,以大写开头, 和一个数字结尾的行.
grep -w '[tT]est' file 包含单词和test的行.
grep -s 'ken sun' file 找到包含ken sun的行, 但不打印行, 而是用来检查退出状态.
grep -v aaa file 打印不包含aaa的行.
grep -i cathy file 打印所有包含cathy的行, 而不考虑大小些.
grep -l 'dear cathy' * 打印包含dear cathy的文件的文件名清单.
grep -n tom file   打印匹配的行并追加行号.
grep "$LOGNAME" file 包含变量内容的行, 注意必须用双引号, 单引号则无法引用变量.
grep '$name' file 打印包含字符$name的行.

 

egrep:


egrep = grep -E 可以使用基本的正则表达外, 还可以用扩展表达式. 注意区别.
扩展表达式:
+ 匹配一个或者多个先前的字符, 至少一个先前字符.
? 匹配0个或者多个先前字符.
a|b|c 匹配a或b或c
() 字符组, 如: love(able|ers) 匹配loveable或lovers.
(..)(..)\1\2 模板匹配. \1代表前面第一个模板, \2代第二个括弧里面的模板.
x{m,n} =x\{m,n\} x的字符数量在m到n个之间.

egrep '^+' file   以一个或者多个空格开头的行.
grep '^*' file   同上
egrep '(TOM|DAN) SAVAGE' file 包含 TOM SAVAGE 和DAN SAVAGE的行.
egrep '(ab)+' file 包含至少一个ab的行.
egrep 'x[0-9]?' file 包含x或者x后面跟着0个或者多个数字的行.
egrep 'fun\.$' * 所有文件里面以fun.结尾的行.
egrep '[A-Z]+' file 至少包含一个大写字母的行.
egrep '[0-9]' file 至少一个数字的行.
egrep '[A-Z]...[0-9]' file 有五个字符, 第一个式大写, 最后一个是数字的行.
egrep '[tT]est' file 包含单词test或Test的行.
egrep 'ken sun' file 包含ken sun的行.
egrep -v 'marry' file 不包含marry的行.
egrep -i 'sam' file 不考虑sam的大小写,含有sam的行.
egrep -l "dear ken" * 包含dear ken的所有文件的清单.
egrep -n tom file 包含tom的行, 每行前面追加行号.
egrep -s "$name" file 找到变量名$name的, 不打印而是显示退出状态. 0表示找到. 1表示表达式没找到符合要求的, 2表示文件没找到.

 

在正则下
\ 关闭后续字符的特殊定义,但\(\) \{\}会打开其特殊定义
. 任何单个字符
* 0个或多个 在它之前的单个字符
  单独出现时 在BRE中不具有任何意义(因为前面为空 就什么都没有)
^ 在BRE中  在表达式开头处具有意义
  在ERE中  任何位置都有意义
$ 同上,只是他代表的是结尾处
[] 匹配方括号内任一字符
   - 在这里的意思是连续 ex:1-9  1到9
   ^ 代表非
在方括号表达式中,所有的meta字符都会失去特殊含义
[]*\.-]这个例子比较特殊 对] 跟-  放进[]里的位置有些许讲究
\(['"]\).*\1 这个的意思是 ''或者“”,
不用担心单引号先找到或者是双引号先找到

   
注:BRE 基础正则表达式 ERE 扩展正则表达式
注:
[::] 字符集 ex: [:alpha:] 字母字符 [:alnum:] 数字字符 
    [:upper:] 大写 [:lower:] 小写 [:space:] 空格(和'\t')


[..] 多字符序列视为一个单位
[==]等价字符集 对于有音标的才需要

后向引用
\( \)  配一个\n 
ex:\( \)\1 表示引用前面的一次,那就是() ()  原来有一次,再应用一次
另外注意的是,n代表1-9  最多可以9次的应用,顺序是从左开始


元字符描述
\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配字符“n”。“\\n”匹配一个换行符。序列“\\”匹配“\”而“\(”则匹配“(”。
^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。
$匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。
*匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等价于{0,}。
+匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。
?匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do”。?等价于{0,1}。
{n}n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。
{n,}n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。
{n,m}m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。
?当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o?”将匹配所有“o”。
.点匹配除“\n”之外的任何单个字符。要匹配包括“\n”在内的任何字符,请使用像“(.|\n)”的模式。
(pattern)匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“\(”或“\)”。
(?:pattern)匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。
(?=pattern)正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern)正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?<=pattern)反向肯定预查,与正向肯定预查类似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。
(?<!pattern)反向否定预查,与正向否定预查类似,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。
x|y匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。
[xyz]字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。
[^xyz]负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。
[a-z]字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。
[^a-z]负值字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。
\b匹配一个单词边界,也就是指单词和空格间的位置。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。
\B匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。
\cx匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的“c”字符。
\d匹配一个数字字符。等价于[0-9]。
\D匹配一个非数字字符。等价于[^0-9]。
\f匹配一个换页符。等价于\x0c和\cL。
\n匹配一个换行符。等价于\x0a和\cJ。
\r匹配一个回车符。等价于\x0d和\cM。
\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
\S匹配任何非空白字符。等价于[^ \f\n\r\t\v]。
\t匹配一个制表符。等价于\x09和\cI。
\v匹配一个垂直制表符。等价于\x0b和\cK。
\w匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。
\W匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
\xn匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,“\x41”匹配“A”。“\x041”则等价于“\x04&1”。正则表达式中可以使用ASCII编码。
\num匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,“(.)\1”匹配两个连续的相同字符。
\n标识一个八进制转义值或一个向后引用。如果\n之前至少n个获取的子表达式,则n为向后引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。
\nm标识一个八进制转义值或一个向后引用。如果\nm之前至少有nm个获得子表达式,则nm为向后引用。如果\nm之前至少有n个获取,则n为一个后跟文字m的向后引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。
\nml如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。
\un匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号(©)。

 

 

 

【5G】5G 核心网(5GC)基本架构 本文旨在科普5G核心网相关知识... 阅读详情

相关推荐

护网日志分析基础

简要介绍日志分析,给出日志分析的步骤和思路。要求根据日志中的字符串特征,识别攻击者的攻击工具;根据日志中的行为特征,确定攻击者可能的攻击手段等。总结归纳护网中常见的中间件Tomcat、Apache、Weblogic、Nginx、Apache、IIS、MySQL、SQL Server、Oracle的日志路径和日志配置文件路径等。

m0_59302403的博客 3698

grep,egrep 及正则表达式

Linux中一切皆文件:文本文件,对文本文件的搜索就非常的关键和常用。Linux文本搜索工具:grep ,egrep,fgrep,文本搜索指文本文件中内容的搜索。文件名的搜索是linux中bash的特性,globbing,文件名通配,有点windows中的搜索相似,但功能跟强大。一般配合 ls 命令使用。可参考视频:bash基础特性(01)globbing:中的元字符: *:...

weixin_34391854的博客 215

泛微E9表单建模查询列表勾选后带入流程明细表中

注意:参照下图各项配置,否则会有问题。

泛微二次开发后端知识总结 5309

grep和egrep命令及相应的正则表达式用法总结

作为Linux上文本处理三剑客之一的文本搜索工具,grep和egrep是基于“pattern(模式)”对给定文本进行搜索操作。正则表达式: 即Regular Expression 缩写为REGEX. 是由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意义,而是用于表示控制或通配的功能。正则表达式分类: 基本正则表达式:BRE (Bas...

weixin_33843409的博客 608

从零开始STM32cubeide学习

使用的是正点原子的精英版,单片机是STM32F103ZET6,详细讲解完成跑马灯实验

weixin_44077208的博客 2279

ANSYS接触分析实战:从法兰连接案例看接触刚度与穿透容差的黄金搭配

本文以法兰连接为实战案例,深入解析了ANSYS接触分析中接触刚度(FKN)与穿透容差(FTOLN)的参数设置策略。通过系统性敏感性分析,揭示了这对关键参数的博弈关系与调优逻辑,旨在帮助工程师在保证计算收敛的同时,获得高精度的有限元分析结果,有效解决工程中的非线性接触难题。

moon9的博客 312

grep 命令egrep

1,grep取反过滤,-v取反 - 2,过滤空行,‘#|^$’ 表示过滤掉有#号和行首行尾为空格的行

ths512的博客 583

Isograph Reliability Workbench 14实战:从零构建故障树分析模型

本文以“马达不转”为例,手把手教你使用Isograph Reliability Workbench 14从零构建故障树分析模型。内容涵盖创建工程、定义顶事件、添加逻辑门与基础事件等核心步骤,并介绍了模型检查与定性定量分析,帮助你系统掌握这一强大的可靠性工程工具。

weixin_29309213的博客 359

正则表达式 学习笔记

1 . regular expressions 分类 --BRE(Basic Regular Expressions 基础正则表达式) --ERE(Extended Regular Expressions 扩展正则表达式) 2 . BRE支持的元符号 1)  .   匹配且仅匹配任意一个字符; .*表示长度为0或以上的任意字符串 2)  *   与*之前的字符合作,表示该字符重复0次或者0次以上 3)  ^   用于锚定字符串的开始 , '^head' 表示匹配以head开头的行 4)  $

yaozhiyi的专栏 3460

【亲测好用】解决Windows系统Vscode终端无法使用yarn报错无法加载文件

我明明使用`npm i -g yarn ` 安装成功了 甚至在文件夹处 CMD 也可以看到yarn 的版本 甚至在Vscode中又重新安装了一遍yarn 为什么还是报错呢?

Aeporn的博客 888

用 CDS 作为 Referenced Data Source 开发 SAP Gateway OData 服务,一条更轻的 SEGW 路线

本文介绍了SAP Gateway项目中从传统手工建模到基于CDS View的现代化开发方式转变。主要内容包括: 传统方式需要在SEGW中手动创建Entity Type、Entity Set等元素,并在DPC_EXT中编写大量查询逻辑,存在模型层和业务逻辑重复表达的问题。 7.50版本后,SAP Gateway与ABAP CDS深度集成,可通过SEGW直接引用CDS View作为数据源,自动生成数据模型和SADL读取逻辑,支持完整的OData查询功能。 最佳实践建议通过Consumption View而非直接

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 703

Shell egrep

1.egrep是grep命令的扩展。grep使用需要脱义字符“\”。-E也可以满足。 2.正则参数。 (1).    #任意一个任意字符。 (2)?      #0或1个前面的字符。 (3)+    #1或多次的前面字符。 (4).*     #任意个任意字符。 (5)*      #0或多个任意字符。 3.egre...

weixin_30701521的博客 1334

YOLOv11【第三章:高阶应用与落地篇·第7节】多任务联合训练(Multi-Task Learning):检测+分割+关键点三头并进!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 727

grep 整理

上表中的[:alnum:], [:alpha:], [:upper:], [:lower:], [:digit:]代表区间合集,注意在匹配中只能代表一个字符。,fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。egrep是一种增强版的grep,它使用更多的正则表达式来搜索文本,比如可以使用更多的元字符,更多的重复模式,更多的可选项等。egrep和fgrep都是grep的扩展,支持更多的。它功能更强,可以通过。

u010230019的博客 1192

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

grep 同时查找多个文件

文章目录说明grep 和 grep –E(egrep)实现方法grep格式egrep格式 说明 有时候难免会遇到 想同时处理 多个文件的 情况,但其他情况使用都很正常,比如touch file1 file2 … mkdir file1 file2 同时写空多个文件…. 这些都行 , 直到有一天 我想grep 多个条件打印到屏幕,才发现 竟然不行 几经波折 整理出了 grep和egrep的方法!...

崔崇鑫的博客,你linux/云运维工作中的百科全书。 3万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

grep与egrep区别在哪里

egrep 命令 用途   搜索文件获得模式。 语法   egrep [ -h ] [ -i ] [ -p [ Separator ] ] [ -s ] [ -v ] [ -w ] [ -x ] [ -y ] [ [ -b ] [ -n ] | [ -c | -l | -q ] ] { { -ePattern | -fStringFile } ... | Pat...

weixin_34216107的博客 252

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

egrep 命令

egrep 命令 用途 搜索文件获得模式。 语法 egrep [   -h  ] [   -i  ] [  -p [ Separator ] ] [ -s  ] [   -v  ]  [   -w  ] [   -x  ] [   -y  ] [ [   -b  ] [   -n  ] | [   -c  |   -l  |

Warrior 技术大杂论 5090

grep命令学习整理

grep :          在给出文件列表或标准输入之后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配的文本。   工作原理: 对输入(如文件、键盘)的每一行文本,grep命令进行如下操作: 1.      将改行文本读入相应的缓冲区,该缓冲区又被成为模式空间。 2.      对模式空间应用正则表达式进行对比。 3.      如果匹配,则改行信息从模式空

hason_live的专栏 447

Linux中grep,egrep正则表达式基本用法

正则表达式本人第一次写博文。由于最近刚好学到了正则表达式基本使用方法。整理了一下,以后用于回顾查找。正则表达式基本说明:基本来说,正则表达式式一种用来描述一定数量文本的模式,正则表达式的简写为REGEX 全称Regular Express。首先正则表达式对于Linux运维工程师来说非常重要,这将伴随每一个运维工程师的职业生涯。说到正则表达式那么不得不说一下grep...

weixin_34082854的博客 124

正则表达式文法icase nosubs optimize collate ECMAScript basic extended awk grep egrep,分别有什么区别?

使用该写法就可以不再转义即可使用,其中dem为任意字符,但要求前后一致即可,其它为固定写法.当然除了选择文法,还可以选择其它标志,只需要将他们用符号 | 连接起来即可。如忽略大小写匹配可以写为。regex库默认使用的。

robin__su的博客 201

grep 命令基础使用方法

简单整理下 grep 的几个命令,其实是翻译了一篇博客。 文件: $ cat file.txt ostechnix Ostechnix o$technix linux linus unix technology hello world HELLO world 1、 查找字符串(不带单引号也能查找成功,但建议还是带上,一来正则查找不带单引号会出错,第二个就是也不差多敲着两下) $ grep 'nix' file.txt ostechnix Ostechnix o$technix unix 2、查找并显

骑着蜗牛向前跑的博客 1068

linux grep -r 查询相关名字的文件以及ps指令

参考:https://zhuanlan.zhihu.com/p/65515740 grep命令简介 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 grep家族 grep家族包括grep、egrep和fgrep:egrep是grep的扩展,支持更多的re元字符;fgrep就是fixed grep或fast grep。 工作机制简要介绍 grep在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不

qq_15821487的博客 2780

grep与常用正则表达式

grep、sed、awk结合正则表达式运用起来会很高效,在工作中遇到这种问题的解决方案以及用在shell编程中也是很重要的~所以值得去花时间好好总结一下。 1.      基本的元字符集 --------------------------------------------------------------------------------------------------------

Jason's BLOG 621

egrep

egrep 命令 用途 搜索文件获得模式。 语法 egrep[-h] [-i] [-p[Separator] ] [-s...

cml2016的博客 147
上一篇: shell中的重定向 1>&2 2>&1 >&2
下一篇: 理解离散傅立叶变换
NewThinker_wei
博客等级 码龄14年 521粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值