grep命令:查找文件里符合条件的字符串正则表达式
grep函数用于在文件中查找能够与模式匹配的文本,并显示其所在行编辑器
grep函数的模式字符串即为基础正则表达式:函数
grep [-acinv] [-AB] [--color=auto] [mode] [file]
选项:spa
-a 将二进制文件当作文本文件处理命令行
-c 统计找到匹配的次数code
-i 忽略大小写xml
-n 输出匹配的行号blog
-v 反向查找,即输出不存在匹配的行ci
-A After,输出匹配的行后面全部行字符串
-B Before,输出匹配的行前全部行
--color=auto 将匹配的内容自动使用不一样颜色显示
基础正则表达式:
特定字符串 直接使用单引号括起,特殊字符须要在前面加‘\’转义,解除其特殊功能。
包含/不包含 某集合的元素
[字符集] 表明字符集中任意一个字符,在表达式中占一个字符的位置
[^字符集] 表明字符集不包含的任意一个字符,在表达式中占一个字符的位置
字符集的描述能够将全部元素写出,无需分隔符每一个字符即为一个元素(如:[abc])
也能够按照语系字符集的顺序写出(如在LANG=C下的[a-z]表示全体小写英文字母,或[a-z0-9]表示全体小写字母或者数字)
Linux风格的文本,行首标记为“^”, 如'^a'表示第一个字符是a的行。行尾标记为“”,′z”,′z'表示最后一个字符为z的行
天然地,'^$'表示空行
.
任意单个字符,在表达式中占一个字符的位置
* 0
至无穷个前一字符的重复,如'a*'表示a后面跟0至无穷个a组成的字符串。
.*
表示任意字符0至无穷次重复,它在正则表达式中表示任意字符串
扩展正则表达式:(grep不支持,使用egrep或grep -E):
+
重复一个或一个以上的前一个字符,如a+
?
0个或一个的前一个字符, 如a?
|
逻辑或
(a|b)
组字符串,表明字符串a或字符串b
(|)+
表示重复1次或以上的组字符串
sed命令:一种在线编辑器,它一次处理一行内容
sed是以行为单位的支持正则表达式的字符串处理命令
处理时,把当前处理的行存储在临时缓冲区中,称为'模式空间'(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并无改变,除非你使用重定向存储输出。
sed [-inefr] {处理命令/脚本文件} [处理文件]
选项:
-n 使用安静模式。若无此参数来自stdin的数据会所有输出到屏幕,若使用此参数则只有通过sed处理的行才会显示
-e 直接在命令行中输入处理命令
-f filename 添加脚本文件
-r 启用扩展正则表达式支持(默认支持基础正则表达式)
-i 直接将修改写入文件,默认将其输出到stdout。
处理命令 '[n1, [n2]]op str' n1,n2表示从n1到n2全部行(闭区间)做为当前行,op是操做符,str是操做符后所接的字符串