dtdh.net
当前位置:首页 >> sED 正则匹配 >>

sED 正则匹配

root@ubuntu:~# cat b$cfg['blowfish_secret'] = ''asdbjbaksdbaed2324g3groot@ubuntu:~# cat b|sed -n "s/\(.*\)23.*/\1/p"aed

现在有如下一串字符串: "asdfkjasldjkf"shiner"df 需求: 需要提取出shiner子字符串。 命令如下: [root@localhost /]$ echo "asdfkjasldjkf\"shiner\"df" | sed 's/\(.*\)"\(.*\)"\(.*\)/\2/g' shiner 命令解释 s: 表示替换命令 \(.*\)" : 表...

第一个\(...\) 和后面的\1 对应 第二个\(...\) 和后面的\2 对应 +不转译的话,意思是匹配一个或多个前面的匹配项

sed默认使用的是古老的基本正则表达式(BRE) 's/(.*):(.*)/\2:\1/' 上面这样不加反斜杠转义才是你理解的那种形式,匹配在括号里的字符 's/\(.*\):\(.*\)/\2:\1/' 圆括号前加上反斜杠转义,才是我们理解的分组,与现在大多数语言使用的含义相反...

sed 是最基本的正则表达式,在这种表达式里,除了 . 和 * 以外,其它所有的特殊字符都必须转义,否则当作字面字符看待。 所以 + 是匹配它本身,\+ 才是作为量词修饰。 这种风格的表达式很多见,比如常用的编辑器 vi 就是这个风格。

按照你这个情况可以使用匹配root作为过滤条件实现 df -h|sed -n '/root/p'

sed -e '4,/^$/!d;/^$/d' 4——开始行号,从第四行开始 /^$/——结束行号,查找第四行后面出现的第一个空行 !——对上面上面之外的行操作(反选) d——删除操作 ;——连接两个命令 /^$/——查找上面结果中所有的空行 d——删除 举例: 文件内容: 行号:内容 ...

正则匹配中,点号.表示任意一个字符,*表示重复前面一个字符(这里就是点号.)0次或多次。 \(.*\)a表示要以一个a字符结尾,而默认情况下*具有贪婪特性,会匹配符合要求的最大数目的字符。 因此 .* 就匹配到了最后一个a前面的所有字符。 \( \) 这...

[]本身就是特殊符号, 这里用的就是特殊意义 [0-9]表示 0,1,....9 这些字符中的一个 不需要转义 如果要匹配方括号,才需要\[ \]

$1 > 1.tmp 获取当前脚本第一个参数,并输出至1.tmp .*[0-9] 与后面 \1等同 [0-9]\{3\} 与后面\2等同 :a ..... ta 是一对符号,表示如果ta之前执行成功,则跳转到:a标识符 整条命令就是一个文本重新排位 命令分段: echo $1 > 1.tmp sed -e :a -...

网站首页 | 网站地图
All rights reserved Powered by www.dtdh.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com