正则表达式2

来源:互联网 发布:java反射 在什么场景用 编辑:程序博客网 时间:2024/06/16 09:22
  ►锚点搜索
“^”:表示以什么开头的行
grep -v '^#' /etc/inittab |grep -v ^$
egrep '^[^[:digit:]]' /etc/inittab
"$":表示以什么结尾的行
egrep ':$' /etc/inittab
egrep '^hello$' file
\<:表示词首部
\>:表示词尾部
\<abc\>:表示abc这个单词
egrep '\<pig\>' /usr/share/dict/words

►正则表达式分组
“?”,“*”,“+”默认只能修饰前面一个字符
利用圆括号()可以实现多个字符分组
f(oo)* oo后的所有
在圆括号中利用“|”实现或者的功能
(oo|ee){2} oo,ee的前两位
转义元字符
egrep 'cat.' /etc/aa
egrep 'cat\.' /etc/aa

►grep 通用正则表达式分析程序,在文件中查找并显示包含指定字符串的行 grep [选项] 模式 目标文件
-E 等同于正则表达式,按照某种正确的规则写出来的表达式
-i 查找是忽略大小写
-v 反转查找,输出与模式不相符的行
-I 仅显示符合模式要求的文件名
-n 显示符合模式要求的行号
-r 递归搜索所有文件
-w 精确查找
-c 查看行号
-q 不显示任何输出
-An 同时显示符合条件行的下面n行
-Bn 同时显示符合条件行的上面n行
-Cn 同时显示符合条件行的上下n行
-o 仅显示匹配模式的字符串
-f 根据文件内容进行匹配
^...... 以什么开头
......$ 以什么结尾
正则表达式:按照某种正确的规则写出来的公式


►ipcalc -n 172.16.20.224/17 NETWORK=172.16.0.0 计算网络地址
ipcalc -c 172.16.20.224/26 BROADCAST=172.16.20.255 计算广播地址

►linux系统支持三种形式的grep命令,通常将这三种形式的grep命令称为grep命令族,这三种形式具体为
ls /bin/*grep
fgrep:不支持正则表达式,块数搜数简单模式,按照字符串的字面意思进行匹配,相当与grep -F
grep:可以使用基本正则表达式搜索
egrep:可以使用基本和扩展正则表达式搜索,相当与grep -E

►正则表达式与通配符匹配的区别
正则表达式只在少数搜索和替换文本命令中使用
文件名匹配在bash中匹配文件名
都使用“*”,“?”但意义不一样
正则表达式元字符要放在引号内,避免bash shell解释

►特使字符
: 内置的空命令,返回值为0
; 连续运行命令
| 前面的标注输出作为后面命令的标注输入,正则表示或者
|| 前面命令返回值为非0才执行后面的命令
& 将命令放到后台执行,表示标准输出和标准错误输出
&& 前面命令返回值为0才执行后面的命令
# 表示注释,变量长度
? 通配符中表示任意1个字符,正则表达式中表示0个或者1个前面的字符
* 通配符中表示0个到多个任意字符,正则表达式中表示0个或者多个前面的字符,算术运算中的乘法
! 将命令或者条件表达式的返回值取反,执行历史命令,vi或者ftp中执行外部shell命令,间接应用变量
$ 取变量的值,正则表达式表示行尾
\ 单字符转义
> 输出重定向,条件测试中的大于号
< 输入重定向,条件测试中的小于号
= 变量赋值,条件测试中的等号
+ 算术运算中的加号,正则表达式中1个或多个前面的字符
>> 输出重定向追加
<< here document
<<< here string
- 算术运算中的减号,命令的选项,上一个工作目录,通配符和正则表达式中表示范围[a-z],tar -cvf - /home |tar -xvf - 表示输出流或输入流
‘’ 解决变量赋值空格的问题,阻止shell替换
“” 解决变量赋值空格的问题,阻止shell部分字符替换,对$~`无效
`` 命令行替换
% 算术运算中的模运算,vi中替换操作中表示所有行
() 子shell中执行命令,会继承父shell的变量。数组赋值,括起数组元素。正则一组元素。函数后面
(()) 算术运算,整数比较测试
[] 通配符和正则中表示匹配括号中的任意一个字符。条件测试表达式。数组中下标括号。
[[]] 字符串比较测试
. 正则中表示任意1个字符,当前shell执行脚本命令,表示当前目录,表示隐藏属性
{} 通配符扩展abc{1,2,3},正则表达式中表示范围,匿名函数{cmd1;cmd2;cmd3} &>/dev/null ,括起变量名${abc}a
/ 算术运算中的除法,根目录或路径分割符
^ 在[^abc]通配符中表示取反,在正则表达式中表示以什么开头
@ $@所有位置参数,邮件分割符,代表本地域名      
原创粉丝点击