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 学习笔记——正则表达式的主要内容,如果未能解决你的问题,请参考以下文章