1.正则表达式^ 只要是"^"这个字符是直接在中括号[]中被使用的话(不包括嵌套使用)就表示字符类的否定;如果不是表示限定开头. [] 代表的是一个字符集, "^"只有在字符集中才是反向字符集的意思.
$ 在正则表达式中表示匹配行尾 ^$ 匹配空行
–[…]-- 在正则表达式中表示匹配括号中的一个字符 “[xyz]” 匹配字符x,y或z ; “[c-n]” 匹配 c到n之间的任意一个字符
转义符 不想让特殊字符立即生效,就需要使用转义符.
2.转义(escape)“尖角号” --<…>-- 用于表示单词的边界,尖角号必须被转义,如果不这样做它们表示单纯的字面意思. 示例: “<the>” 匹配单词"the",但不匹配"them",“there”,“other” 等 3. – + --匹配一个或多个前面的字符.它的作用和*很相似,但唯一的区别是它不匹配零个字符的情况. 转义"大括号" --{}-- 指示前面正则表达式匹配的次数. 示例:"[0-9]{5}" 精确匹配5个数字 (从 0 到 9的数字).
4.流编辑器 (sed) Sed “1p” a.py 首行打印了2次 打印第2行到第4行 说明:第2行内容打印 第4行内容打印 空行也占一行 打印a.py文件中,含有字母"c"的行 打印a.py文件中,以c开头的行 打印a.py 文件中,含有三个以上连续相同字母的行 注意:( )中的匹配内容将被放置在临时寄存器中,之后对该寄存器的引用为\1,如果有第二对( ),引用为\2。这个在替换中经常用到,打印命令一般用不到。
这里,/ /中的含义为:匹配任意一个小写字母,并将这个匹配内容放置在寄存器中,然后紧接着匹配和这个字母一样的一个字母、再次匹配一下这个字母,第四次匹配这个字母的时候,用了“*”,代表有0次或者多次。这样就完成了题干中含有三个以上连续相同字母的匹配。
打印匹配aaaaah和ccccc 之间的行 匹配具有贪婪性,从a开始一直往下找,一直到之后才截止 5.删除命令d sed 的删除操作并不直接作用于文件本身,而仅仅是在打印的时候不打印匹配的行,有些类似于 grep -v. 如果需要删除操作作用于文件,在有文件写权限的前提下,可以使用sed -i参数来使删除操作作用于文件.注意:不是所有的unix自带的sed工具都有这个功能. 删除指定第几行 如;删除 第 24 行,用sed 命令仅仅是在打印的时候对第XX行做了影藏,但实际上并没有做删除. 删除前可以用wc 命令来看这个文件总共有多少行.
wc -l filename 就是查看文件里有多少行
wc -w filename 看文件里有多少个word。
wc -L filename 文件里最长的那一行是多少个字。
6.删除匹配行 删除以 “this” 单词开头的行 第一种写法,回顾正则中,< >表示单词,这个符号将严格的定位一个单词,即this这四个字母紧挨在一起,前后都有一个以上空格或者制表符;或者这个单词在一行的开头处,后面跟一个以上空格;或者这个单词在结尾处,前面有一个以上的空格。
删除连续的a和连续的d的行以及两者之间的行
|