linux学习第二周;正则表达式

字符匹配:

.  # 匹配任意单个字符

[]  # 匹配指定范围内的任意单个字符

[^] # 匹配指定范围外的任意单个字符

. /*/.* # 不需要在字符串上加引号; 例如:go.*gle

匹配次数:

* # 匹配前面的字符任意次,包括0次

.* # 任意长度的任意字符

以下用法都需要在字符串上加双引号; 例如:"go\{5\}gle"

\? # 匹配其前面的字符0或1次

\+ # 匹配其前面的字符至少1次

\{n\} # 匹配前面的字符n次

\{m,n\} # 匹配前面的字符至少m次,至多n次

\{,n\} # 匹配前面的字符至多n次

\{n,\} # 匹配前面的字符至少n次

位置锚定:

^ # 行首锚定,用于模式的最左侧

$ # 行尾锚定,用于模式的最右侧

例子:^$  行首加行为表示空行 (只有回车)

^[[:space:]]*$  空白行 (有空格有回车)

^PATTERN$  # 用于模式匹配整行

\< 或 \b  # 词首锚定,用于单词模式的左侧

\> 或 \b # 词尾锚定;用于单词模式的右侧

\<PATTERN\> # 匹配整个单词

分组:

\(root\) # root可以是其他表示字符串的整体

扩展正则表达式:与正则表达式相比不用加斜线

例如:取所有ip相关的地址

正则表达式:ifconfig | grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"

扩展正则表达式:ifconfig | grep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" # \.表示转义.  斜线不能去掉,其余斜线均可去除

正则表达式:ifconfig|grep -o "\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}"(利用正则表达式分组功能)

扩展正则表达式:ifconfig|grep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"(利用正则表达式分组功能)

原文地址:https://www.cnblogs.com/byy18/p/8591660.html

时间: 2024-11-07 09:43:02

linux学习第二周;正则表达式的相关文章

Linux学习第二周作业

1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. Linux上的文件管理类命令: cp命令:复制文件或目录 单源复制:cp [OPTION]...[-T] SRC DEST 多源复制:cp [OPTION]...SRC...DIRECTORY cp [OPTION]...[-T] SRC DEST 其常用选项为:-i 交互式,提醒目标存在,是否覆盖. -r,-R:递归复制源目录下所有目录与文件 -a 归档复制,保留所有的文件的元数据,相当于-dR --preserv=

linux学习第二周;rpm包管理;yum管理;定制yum库

rpm安装(无法解决包之间依赖性问题): rpm -ivh # 安装包(需要给出包绝对路径) rpm -V #用作包校验,包无变化则不执行操作,包被改变则显示包改变的属性 rpm -e # 卸载包 rpm -qi rpm -ql rpm -qf rpm -K yum安装(可解决包之间依赖性问题): 定制yum库: 1.先移走/etc/yum.repos.d/文件里默认的互联网yum源 2.cd  /etc/yum.repos.d/ 3.vim  base.repo #后缀为.repo,名字随便起

linux学习第二周;shell编程

pstree -p #显示进程编号(树状) echo $$ #显示当前shell进程编号 脚本的基本结构 : #!SHEBANG (表明使用什么shell打开文件,一般使用bash) CONFIGURATION_VARIABLES #定义变量 FUNCTION_DEFINITIONS#定义函数 MAIN_CODE #主要执行命令 检测脚本中的语法错误 bash -n /path/to/some_script 调试执行 bash -x /path/to/some_script 变量命名法则: 1.

linux学习第二周;vim文本编辑器

扩展模式下: r file绝对路径  # 将file文件内容写入当前光标下一行 w filename  # 将当前vim打开的文件当前内容写入到filename中(新建文件filename,将内容写入) w!file1  # 强制将vim打开的文件当前内容写入到file1中,即覆盖file1中原来的内容(file1已存在) !command  # 临时执行command命令(该命令不能是别名) r!command  # 将command执行结果写入当前光标下面(该命令不能是别名) 原文地址:ht

linux学习——第二周复习

原文地址:https://www.cnblogs.com/it-ljm1903/p/10712555.html

Linux学习-shell利用正则表达式验证邮箱合法性

引文:在今天这个时代,Email已经成为一种重要的通信方式.给导师发邮件,学术研究之间的交流,etc.常常用到Email,然而Email的验证却有点小难度,下面给出一个在Linux下使用shell脚本编写的一个实例. linux中将正则表达式和sed.gawk结合起来,功能非常强大.我说的是真的,没骗你的,好好学吧. 邮箱验证 Email地址的基本格式为: username@hostname 1.username部分模式匹配 username的值可以用字符数子字符以及以下特殊字符: 点号 单破折

马哥linux 培训第二周作业

注意:第二周作业,请将以下题目整理在51cto博客当中,完成后请将对应的博文链接地址提交在答案栏中,提交格式如下:学号+姓名+博文链接地址eg:1+张三+http://mageedu.blog.51cto.com/4265610/1794420 本周作业内容:1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 文件管理的命令有cp.mv.rm 复制命令:cp 用法: cp [-adfilprsu] 来源文件(source) 目标文件(destination) cp [o

linux博文第二周

LINUX第二周博客 1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. cp, mv, rm 1.复制命令: cp cp [Option] ...[-T] SRC(源) DEST(目的) (如果目标不存在,则新建DEST, 并将SRC中的内容填充至DEST中. 如果目标存在:如果DEST是文件,将SRC内容覆盖至DEST中.此时建议为cp命令使用-i选项. 如果DEST是目录,在DEST下新建与原文件同名的文件,并将SRC中内容填充至DEST中) 实例:cp /etc

Java学习第二周总结

2018年7月22日 暑假第二周马上就要结束了,这一周我继续学习了java. 本周学到了一些Java的修饰词,比如static.private.public等,这些修饰词用法与c++类似,很容易掌握.也学会了创建对象,学到了如何创建类的构造方法.还学到了如何使用Java里一些基础类的方法,比如String类.StringBuffer类.仅仅只是String类里就有30多种方法可供使用.除此之外,还学到了代码块.类的继承.方法的重写这些知识. 本周花在学习上的时间估计达到25小时,周一至周五平均每