Linux 学习笔记——正则表达式

Posted Johnny*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 学习笔记——正则表达式相关的知识,希望对你有一定的参考价值。

正则表达式(Regular Expression)是用来匹配一系列某个句法的一种规则。常用来替换、检索符合某个模式的文本。

基本语法

限定符

  • +表示前面的字符必须出现1次货多次
  • ? 表示前面的字符出现0次或1次
  • *表示前面的字符可以出现0到多次

范围和优先级

() 可以用来定义模式字符串的范围和优先级
j(o|a)hnny .,这里的括号用于表示竖直分隔符|用于选择o或者a。而不是jo或者ahnny。

字符描述
^
$
[xyz]字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。
[^xyz]排除型(negate)字符集合。匹配未列出的任意字符。例如,“[ ^abc]”可以匹配“plain”中的“plin”。
[a-z]字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。
[^a-z]排除型的字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。

grep

grep命令用于打印输出文本中匹配的模式串

在这里插入图片描述
【命令解释】

-c  统计匹配模式的数目
-i  忽略大小写
-n  显示匹配文本所在行的行号
-v 反选 ,输出不匹配行的内容 

在这里插入图片描述

【命令解释】

查找/etc/group 文件中一"shiyanlou"为开头的行

在这里插入图片描述

【命令解释】


grep 'z.*o'  # .表示匹配一个任意字符将匹配以'z'开头以'o'结尾的所有字符串
grep 'z.o'   # 将匹配以'z'开头以'o'结尾,中间包含一个任意字符的字符串
echo 'zero\\nzo\\nzoo'  #将匹配以'z'开头,以任意多个'o'结尾的字符串

sed编辑器

命令说明
s行内替换
c整行替换
a插入到指定行的后面
i插入到指定行的前面
p打印指定行,通常与-n参数配合使用
d删除指定行

复制/etc/passwd到当前路径下
在这里插入图片描述

在这里插入图片描述

【命令解释】

-n 	 #  安静模式,只打印受影响的行,'2,5p' 指定第二行和第五行
nl passwd | sed -n '1~2p'  # 打印奇数行

在这里插入图片描述

【命令解释】


删除第30行

以上是关于Linux 学习笔记——正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

python基础学习笔记(十三)

Linux学习笔记:Shell基础正则表达式

Linux 学习笔记——正则表达式

Linux shell编程学习笔记---第三章

2018-1-15 Linux学习笔记

Linux学习笔记 第八章 文本处理工具与正则表达式