-
2021-05-14 20:38:14
字符匹配:
. :匹配任意单个字符
[] :匹配指定范围内的任意单个字符;
[^]:匹配制定范围外任意单个字符 [:digit:] lower upper alpha alnum space
匹配次数:用在要指定其出现的次数的字符后面,用于限制其前面字符出现的次数
*:匹配其在前面的字符任意次:0,1.多次
.*:匹配任意长度的任意字符
\?:匹配其前面字符0次或一次,及前面字符是可有可无
\+:匹配其前面字符一次或是多次,至少一次,
\{m\}匹配前面字符m次
\{m.n\}匹配其前面的字符至少m次,之多n次
\{0,n\}:之多n次
\{m,\} :至少m次
位置锚定:
^:行首锚定:用于模式的最左侧
$:行尾锚定:用于模式的最右侧
^PATTERN:用于PATTERN
^$:空白行
^[[:space:]]:空行或包含空白字符的行
单词:非特殊字符组成的连续字符(字符串)都成为单词
\
\>或是\b:词尾锚定,用于单词模式的右侧
\:匹配完整单词
以上所述是小编给大家介绍的Linux中基本正则表达式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
更多相关内容 -
linux awk 正则表达式、正则运算符详细介绍
2021-05-17 12:09:16使用awk作为文本处理工具,正则表达式是少不了的。 要掌握这个工具的正则表达式使用。其实,我们不必单独去学习它的正则表达式。正则表达式就像一门程序语言,...详细可以参考:linux shell 正则表达式(BREs,EREs,P...使用awk作为文本处理工具,正则表达式是少不了的。 要掌握这个工具的正则表达式使用。其实,我们不必单独去学习它的正则表达式。正则表达式就像一门程序语言,有自己语法规则已经表示意思。 对于不同工具,其实大部分表示意思相同的。在linux众多文本处理工具(awk,sed,grep,perl)里面用到正则表达式。其实就只有3种类型。详细可以参考:linux shell 正则表达式(BREs,EREs,PREs)差异比较 。只要是某些工具是属于某种类型的正则表达式。那么它的语法规则基本一样。 通过那篇文章,我们知道awk的正则表达式,是属于:扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)。
一、awk Extended Regular Expression (ERES)基础表达式符号介绍
字符
功能
+
指定如果一个或多个字符或扩展正则表达式的具体值(在+(加号)前)在这个字符串中,则字符串匹配。命令行:
awk '/smith+ern/' testfile
将包含字符 smit,后跟一个或多个 h 字符,并以字符ern 结束的字符串的任何记录打印至标准输出。此示例中的输出是:
smithern, harry smithhern, anne
?
指定如果零个或一个字符或扩展正则表达式的具体值(在 ?(问号)之前)在字符串中,则字符串匹配。命令行:
awk '/smith?/' testfile
将包含字符 smit,后跟零个或一个 h 字符的实例的所有记录打印至标准输出。此示例中的输出是:
smith, alan smithern, harry smithhern, anne smitters, alexis
|
指定如果以 |(垂直线)隔开的字符串的任何一个在字符串中,则字符串匹配。命令行:
awk '/allen | alan /' testfile
将包含字符串 allen 或 alan 的所有记录打印至标准输出。此示例中的输出是:
smiley, allen smith, alan
( )
在正则表达式中将字符串组合在一起。命令行:
awk '/a(ll)?(nn)?e/' testfile
将具有字符串 ae 或 alle 或 anne 或 allnne 的所有记录打印至标准输出。此示例中的输出是:
smiley, allen smithhern, anne
{m}
指定如果正好有 m 个模式的具体值位于字符串中,则字符串匹配。命令行:
awk '/l{2}/' testfile
打印至标准输出
smiley, allen
{m,}
指定如果至少 m 个模式的具体值在字符串中,则字符串匹配。命令行:
awk '/t{2,}/' testfile
打印至标准输出:
smitters, alexis
{m, n}
指定如果 m 和 n 之间(包含的 m 和 n)个模式的具体值在字符串中(其中m <= n),则字符串匹配。命令行:
awk '/er{1, 2}/' testfile
打印至标准输出:
smithern, harry smithern, anne smitters, alexis
[String]
指定正则表达式与方括号内 String 变量指定的任何字符匹配。命令行:
awk '/sm[a-h]/' testfile
将具有 sm 后跟以字母顺序从 a 到 h 排列的任何字符的所有记录打印至标准输出。此示例的输出是:
smawley, andy
[^String]
在 [ ](方括号)和在指定字符串开头的 ^ (插入记号) 指明正则表达式与方括号内的任何字符不匹配。这样,命令行:
awk '/sm[^a-h]/' testfile
打印至标准输出:
smiley, allen smith, alan smithern, harry smithhern, anne smitters, alexis
~,!~
表示指定变量与正则表达式匹配(代字号)或不匹配(代字号、感叹号)的条件语句。命令行:
awk '$1 ~ /n/' testfile
将第一个字段包含字符 n 的所有记录打印至标准输出。此示例中的输出是:
smithern, harry smithhern, anne
^
指定字段或记录的开头。命令行:
awk '$2 ~ /^h/' testfile
将把字符 h 作为第二个字段的第一个字符的所有记录打印至标准输出。此示例中的输出是:
smithern, harry
$
指定字段或记录的末尾。命令行:
awk '$2 ~ /y$/' testfile
将把字符 y 作为第二个字段的最后一个字符的所有记录打印至标准输出。此示例中的输出是:
smawley, andy smithern, harry
. (句号)
表示除了在空白末尾的终端换行字符以外的任何一个字符。命令行:
awk '/a..e/' testfile
将具有以两个字符隔开的字符 a 和 e 的所有记录打印至标准输出。此示例中的输出是:
smawley, andy smiley, allen smithhern, anne
*(星号)
表示零个或更多的任意字符。命令行:
awk '/a.*e/' testfile
将具有以零个或更多字符隔开的字符 a 和 e 的所有记录打印至标准输出。此示例中的输出是:
smawley, andy smiley, allen smithhern, anne smitters, alexis
\ (反斜杠)
转义字符。当位于在扩展正则表达式中具有特殊含义的任何字符之前时,转义字符除去该字符的任何特殊含义。例如,命令行:
/a\/\//
将与模式 a // 匹配,因为反斜杠否定斜杠作为正则表达式定界符的通常含义。要将反斜杠本身指定为字符,则使用双反斜杠。有关反斜杠及其使用的更多信息,请参阅以下关于转义序列的内容。
与PERs相比,主要是一些结合类型表示符没有了:包括:”\d,\D,\s,\S,\t,\v,\n,\f,\r”其它功能基本一样的。 我们常见的软件:javascript,.net,java支持的正则表达式,基本上是:EPRs类型。
二、awk 常见调用正则表达式方法
awk语句中:
复制代码代码如下:
awk ‘/REG/{action}’
/REG/为正则表达式,可以将$0中,满足条件记录 送入到:action进行处理.
awk正则运算语句(~,~!等同!~)
复制代码代码如下:
[chengmo@centos5 ~]$ awk 'BEGIN{info="this is a test";if( info ~ /test/){print "ok"}}'
ok
awk内置使用正则表达式函数
复制代码代码如下:
gsub( Ere, Repl, [ In ] )
sub( Ere, Repl, [ In ] )
match( String, Ere )
split( String, A, [Ere] )
通过上面细述,不知道大家有没有对awk正则表达式有一个更加清楚的认识。 有什么问题可以与我交流!
-
Linux使用正则表达式自动搜索目录下文件。
2021-05-11 06:20:31输入是,你要搜索的顶层目录,第二个参数是你需要存放结果的列表,第三个参数,为你写的正则表达式。十分简单。效率很高。#include #include #include using namespace std ;void RegexMatchAndSave(const char *...写了一个小函数,贴出来给参考参考。输入是,你要搜索的顶层目录,第二个参数是你需要存放结果的列表,第三个参数,为你写的正则表达式。十分简单。效率很高。
#include
#include
#include
using namespace std ;
void RegexMatchAndSave(const char *FileName,char *path,list *filelist,string regexexpression)
{
regex Hrdacexp(regexexpression);
cmatch what; string in=FileName ;
if(regex_match(in.c_str(),what,Hrdacexp))
{
char buf[500];memset(buf,0,500);
strcat(buf,path); strcat(buf,what[0].str().c_str());
filelist->push_back(buf);
}
else
{
cout<
}
}
void SearchFilesOnPath(char *path,list *filelist,string regexexpression)
{
DIR *dirptr = NULL;
struct dirent *entry;
if(path==NULL)
{
printf("please input dir you want to read\n");
Fprint_String("PATH NULL ERROR","StdDataServerError","a+");
exit(-1);
}
if((dirptr = opendir(path)) == NULL)
{
printf("open dir %s !\n",path);
}
else
{
do
{
entry = readdir(dirptr) ;
if(entry!=NULL)
{
if(entry->d_type == 0x04 && (strcmp((const char*)entry->d_name,"..")!=0) && (strcmp((const char*)entry->d_name,".")!=0))
{
printf("###%s is dir and isn't \" ..\" nor \".\"\n", entry->d_name);
char buf[500];memset(buf,0,500);
strcat(buf,path); strcat(buf,entry->d_name);strcat(buf,"/");
SearchFilesOnPath(buf,filelist,regexexpression);
}
else if (entry->d_type == 0x08)
{
printf("%s is file ,match now \n", entry->d_name);
RegexMatchAndSave(entry->d_name,path,filelist,regexexpression);
}
else{
printf("What type is it ??\n");
}
}
}while (entry);
closedir(dirptr);
printf("File Search over now to Show consequence\n\n");
list::iterator iter;
for(iter=filelist->begin();iter!=filelist->end();iter++)
{
printf("%s\n",(*iter).c_str());
}
}
}
-
linux awk 模式匹配,linux awk 正则表达式、正则运算符详细介绍
2021-05-17 12:09:16使用awk作为文本处理工具,正则表达式是少不了的。 要掌握这个工具的正则表达式使用。其实,我们不必单独去学习它的正则表达式。正则表达式就像一门程序语言,...详细可以参考:linux shell 正则表达式(BREs,EREs,P...使用awk作为文本处理工具,正则表达式是少不了的。 要掌握这个工具的正则表达式使用。其实,我们不必单独去学习它的正则表达式。正则表达式就像一门程序语言,有自己语法规则已经表示意思。 对于不同工具,其实大部分表示意思相同的。在linux众多文本处理工具(awk,sed,grep,perl)里面用到正则表达式。其实就只有3种类型。详细可以参考:linux shell 正则表达式(BREs,EREs,PREs)差异比较 。只要是某些工具是属于某种类型的正则表达式。那么它的语法规则基本一样。 通过那篇文章,我们知道awk的正则表达式,是属于:扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)。
一、awk Extended Regular Expression (ERES)基础表达式符号介绍
字符
功能
+
指定如果一个或多个字符或扩展正则表达式的具体值(在+(加号)前)在这个字符串中,则字符串匹配。命令行:
awk '/smith+ern/' testfile
将包含字符 smit,后跟一个或多个 h 字符,并以字符ern 结束的字符串的任何记录打印至标准输出。此示例中的输出是:
smithern, harry smithhern, anne
?
指定如果零个或一个字符或扩展正则表达式的具体值(在 ?(问号)之前)在字符串中,则字符串匹配。命令行:
awk '/smith?/' testfile
将包含字符 smit,后跟零个或一个 h 字符的实例的所有记录打印至标准输出。此示例中的输出是:
smith, alan smithern, harry smithhern, anne smitters, alexis
|
指定如果以 |(垂直线)隔开的字符串的任何一个在字符串中,则字符串匹配。命令行:
awk '/allen | alan /' testfile
将包含字符串 allen 或 alan 的所有记录打印至标准输出。此示例中的输出是:
smiley, allen smith, alan
( )
在正则表达式中将字符串组合在一起。命令行:
awk '/a(ll)?(nn)?e/' testfile
将具有字符串 ae 或 alle 或 anne 或 allnne 的所有记录打印至标准输出。此示例中的输出是:
smiley, allen smithhern, anne
{m}
指定如果正好有 m 个模式的具体值位于字符串中,则字符串匹配。命令行:
awk '/l{2}/' testfile
打印至标准输出
smiley, allen
{m,}
指定如果至少 m 个模式的具体值在字符串中,则字符串匹配。命令行:
awk '/t{2,}/' testfile
打印至标准输出:
smitters, alexis
{m, n}
指定如果 m 和 n 之间(包含的 m 和 n)个模式的具体值在字符串中(其中m <= n),则字符串匹配。命令行:
awk '/er{1, 2}/' testfile
打印至标准输出:
smithern, harry smithern, anne smitters, alexis
[String]
指定正则表达式与方括号内 String 变量指定的任何字符匹配。命令行:
awk '/sm[a-h]/' testfile
将具有 sm 后跟以字母顺序从 a 到 h 排列的任何字符的所有记录打印至标准输出。此示例的输出是:
smawley, andy
[^String]
在 [ ](方括号)和在指定字符串开头的 ^ (插入记号) 指明正则表达式与方括号内的任何字符不匹配。这样,命令行:
awk '/sm[^a-h]/' testfile
打印至标准输出:
smiley, allen smith, alan smithern, harry smithhern, anne smitters, alexis
~,!~
表示指定变量与正则表达式匹配(代字号)或不匹配(代字号、感叹号)的条件语句。命令行:
awk '$1 ~ /n/' testfile
将第一个字段包含字符 n 的所有记录打印至标准输出。此示例中的输出是:
smithern, harry smithhern, anne
^
指定字段或记录的开头。命令行:
awk '$2 ~ /^h/' testfile
将把字符 h 作为第二个字段的第一个字符的所有记录打印至标准输出。此示例中的输出是:
smithern, harry
$
指定字段或记录的末尾。命令行:
awk '$2 ~ /y$/' testfile
将把字符 y 作为第二个字段的最后一个字符的所有记录打印至标准输出。此示例中的输出是:
smawley, andy smithern, harry
. (句号)
表示除了在空白末尾的终端换行字符以外的任何一个字符。命令行:
awk '/a..e/' testfile
将具有以两个字符隔开的字符 a 和 e 的所有记录打印至标准输出。此示例中的输出是:
smawley, andy smiley, allen smithhern, anne
*(星号)
表示零个或更多的任意字符。命令行:
awk '/a.*e/' testfile
将具有以零个或更多字符隔开的字符 a 和 e 的所有记录打印至标准输出。此示例中的输出是:
smawley, andy smiley, allen smithhern, anne smitters, alexis
\ (反斜杠)
转义字符。当位于在扩展正则表达式中具有特殊含义的任何字符之前时,转义字符除去该字符的任何特殊含义。例如,命令行:
/a\/\//
将与模式 a // 匹配,因为反斜杠否定斜杠作为正则表达式定界符的通常含义。要将反斜杠本身指定为字符,则使用双反斜杠。有关反斜杠及其使用的更多信息,请参阅以下关于转义序列的内容。
与PERs相比,主要是一些结合类型表示符没有了:包括:”\d,\D,\s,\S,\t,\v,\n,\f,\r”其它功能基本一样的。 我们常见的软件:javascript,.net,java支持的正则表达式,基本上是:EPRs类型。
二、awk 常见调用正则表达式方法
awk语句中:
复制代码代码如下:
awk ‘/REG/{action}’
/REG/为正则表达式,可以将$0中,满足条件记录 送入到:action进行处理.
awk正则运算语句(~,~!等同!~)
复制代码代码如下:
[chengmo@centos5 ~]$ awk 'BEGIN{info="this is a test";if( info ~ /test/){print "ok"}}'
ok
awk内置使用正则表达式函数
复制代码代码如下:
gsub( Ere, Repl, [ In ] )
sub( Ere, Repl, [ In ] )
match( String, Ere )
split( String, A, [Ere] )
通过上面细述,不知道大家有没有对awk正则表达式有一个更加清楚的认识。 有什么问题可以与我交流!
-
Linux之正则表达式
2021-09-09 21:54:15基本正则匹配字符 如:3,9s/(.*)/#\1/ \:用来转义元字符 <:词首定位符 >:词尾定位符 扩展正则 (…)(…)\1\2 标签匹配字符 \w:所有字母与数字,字符[a-zA-Z0-9] \W:所有除字母与数字之外的字符,非字符[^... -
3分钟搞定Linux系统正则表达式
2021-05-15 19:44:32正则表达式是一种字符模式,用于在查找过程中匹配制定的字符。元字符通常在Linux中分为两类:Shell元字符,由Linux Shell进行解析;正则表达式元字符,由vi/grep/sed/awk等文本处理工具进行解析;正则表达式一般以文... -
shell 正则表达式与文件名匹配
2021-05-16 10:25:151) . : 匹配任意单ASCII 字符,可以为字母,或为数字。2) 举例: ..XC..匹配deXC1t、23XCdf等,.w...2) 举例: ^.01 匹配0011cx4、c01sdf 等,^d匹配drwxr-xr-x、drw-r--r--等行尾以$匹配字符串或字符1) $ : 在行尾匹配... -
Linux系统shell编程正则表达式详解
2020-12-23 18:32:50正则表达式(regular expression, RE)是一种字符模式,用于在查找过程中匹配指定的字符。在大多数程序里,正则表达式都被置于两个正斜杠之间;例如/l[oO]ve/就是由正斜杠界定的正则表达式,它将匹配被查找的行... -
Linux Shell 正则表达式
2021-02-01 13:39:21Linux 工具(比如sed编辑器或gawk程序)能够在处理数据时使用正则表达式对数据进行模式匹配。如果数据匹配模式,它就会被接受并进一步处理;如果数据不匹配模式,它就会被滤掉。 #mermaid-svg-IcucW3CeH7wNHoxS .... -
Linux Shell编程(5) - 正则表达式
2021-05-17 11:31:462. 正则表达式与通配符/正则表达式通配符匹配主体文件中的内容文件名匹配规则包含匹配完全匹配常用命令grep,awk,sedls,find,cp3. 通配符* :匹配任意0到多个字符? :匹配任意一个字符[] :匹配括号中的一个字符* ... -
linux正则表达式
2019-11-02 13:41:22一、什么是正则表达式 1、简单的说正则表达式就是处理字符串的方法,它以行为单位来进行字符串的处理操作,正则表达式通过一些特殊符号的辅助,可以让用户轻易地完成【查找、删除、替换】某特定字符的处理过程。 1... -
常用转义字符、通配符和正则表达式
2021-05-16 09:35:09常用转义字符、通配符和正则表达式转义字符:shell的其他特殊字符:通配符和正则表达式:通配符:正则表达式:转义字符:有时候,我们想让 通配符,或者元字符 变成普通字符,不需要使用它。那么这里我们就需要用到... -
LINUX 使用正则表达式
2019-06-04 08:20:12问题 本案例要求熟悉正则表达式的编写,完成以下任务: 利用egrep工具练习正则表达式的基本用法 提取出httpd.conf文件的有效配置行 编写正则表达式,分别匹配...使用不带-E选项的grep命令时,支持基本正则匹配模式。... -
教你3分钟搞定Linux正则表达式
2021-05-13 20:46:24正则表达式是一种字符模式,用于在查找过程中匹配制定的字符。元字符通常在Linux中分为两类:Shell元字符,由Linux Shell进行解析;正则表达式元字符,由vi/grep/sed/awk等文本处理工具进行解析;正则表达式一般以文... -
Linux正则表达式使用方法详解
2020-07-29 01:16:49正则表达式一、什么是正则表达式1. 定义2. 正则表达式的类型二、 基本正则表达式(BRE模式)1.纯文本2.特殊字符3.锚字符3.1 锁定在行首3.2 ...正则表达式是你所定义的模式模板(pattern template),Linux工具可以用 -
linux下的通配符与正则表达式
2020-12-13 15:46:30正则表达式是在文件中匹配符合条件的字符串的 ls find cp是不支持正则表达式的 但是grep awk sed支持正则表达式 [root@hadoop-bigdata01 test]# touch aa [root@hadoop-bigdata01 test]# touch aab aabb [root@... -
Linux_Shell_Shell 中的正则表达式 与 常用正则表达式
2018-06-22 12:36:28在Linux Shell 编程中,我们常需要用到 正则表达式 进行 文件的匹配在本篇文章中,我们对Linux shell 中的正则表达式 做一个总结,方便之后的shell 编写。参考文章:shell编程之正则表达式... -
在Linux下列出包含指定字符串或正则表达式的文件名
2011-11-01 11:05:32在Linux下包含指定字符串或正则表达式的文件(仅列出文件名) 命令:grep -l <string_or_regex> <file_pattern> 其中-l参数(小写L)的含义如下: man grep 写道 -l, --files-... -
Linux系统开发: linux下正则表达式
2021-07-15 21:58:311.1 正则表达式介绍 正则表达式就是为了处理大量的...现在学的是Linux中的正则表达式,最常应用正则表达式的命令是linux三剑客:grep(egrep),sed,awk。 Linux系统开发: 学习linux三剑客(awk、sed、grep)(上) .. -
Linux 正则表达式
2020-09-09 01:40:30正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 许多程序设计语言都支持利用正则表达式进行字符串操作。例如... -
linux024 正则表达式
2021-05-17 15:12:07Linux工具(比如sed编辑器或gawk程序)能够在处理数据时使用正则表达式对数据进行模式匹配。如果数据匹配模式,它就会被接受并进一步处理;如果数据不匹配模式,它就会被滤掉2. 类型正则表达式是通过正则表达式引擎... -
linux rm 正则删除指定目录
2016-10-12 19:03:08命令 :ll -t|tac 按时间升序列出文件。 服务器上jenkins构建历史目录(2个):/var/lib/jenkins/jobs/game_center_dashboard_test/builds; /var/lib/jenkins/jobs/game_center_dashboard_test/modules/... -
Linux-正则入门基础
2022-03-06 19:43:00正则表达式 能用某种模式去匹配一类字符串的公式,是由一串字符和元字符(用来阐述字符表达式的内容、转换和描述各种操作信息的字符)构成的字符串 1.1 基础正则 元字符 准备的文件内容 [root@yunmx tmp]# cat ... -
如何在Linux上使用正则表达式(regexes)
2020-09-24 11:44:36Fatmawati Achmad Zaenuri/ShutterstockFatmawati Achmad Zaenuri / Shutterstock Wondering what those weird strings of symbols do on Linux? They give you command-line magic! We’ll teach you how to cast ... -
Linux grep命令使用正则表达式匹配查询文本。
2021-03-14 02:30:25正则表达式是一种字符模式,用于在查找过程中匹配制定的字符。元字符通常在Linux中分为两类:Shell元字符,由Linux Shell进行解析;正则表达式元字符,由vi/grep/sed/awk等文本处理工具进行解析;正则表达式一般以文... -
Linux正则表达式
2020-05-11 14:14:57文章目录Linux正则表达式grep与正则表达式简介grep正则表达式的类型grep的用法grep的常用选项基本正则表达式BREBRE的元字符1.字符匹配2.匹配次数3.位置锚定4.分组扩展正则表达式元字符EREERE的元字符1.字符匹配2....