正则表达式
编辑器
- vim;
- sed1;
有趣的例子
s/(b?)-/x\u\1/g
- 作用在a-b-会变成axxB
- 来源参考
- 解读:正则表达式部分是(b?)-,将会匹配a-b-两个部分,分别是-,b-;-替换成x,因为匹配group1(就是正则表达式中第一个括号被匹配的内容)是空,所以
\u不起作用;b-替换成x\u\1,因为匹配group1是b,所以\u发挥作用使得最终结果替换为xB
shell中提取文件名数字
目标是从一系列数字文件夹名称提取出其中的数字
ls */wave.h5 -1 | grep -o -P '^\d{1,2}' | tr '\n' ' '
- 其中
ls -1使得文件输出1行一个 grep -o可以选择输出匹配的部分,-P选择Perl风格的正则表达式,因为后面正则表达式^\d{1,2}中的\d是Perl风格,这个正则表达式意味着选择开头是1-2个数字的部分tr可以把换行符给替换成空格,这样就能够更方便的处理
shell实现提取某些列中的内容
<command1> |tail -n +5|head -n 34|awk '$9 ~ /1/ { printf "%s\n",$11}'|xargs <command2>
command1输出经过管道tail取第5行开始后的内容,head取前34行,相当于选取5-39行awk中$9 ~ /1/匹配第9列中包含1数字的行,打印该行第11列,并换行输出xargs输出参数到command2,这个工具用于不能够接收管道操作的命令。
vim中替换字符
vim中替换字符串需要在正常模式下
:s/[\+]\".*\.pdf\"//g
其中[\+]用来匹配+号,因为\+匹配会报错
(NFA regexp) Misplaced +
提取auth.log中异常信息
将异常登录的用户名筛选出来
sudo cat auth.log|grep "Invalid user"|sed 's/^.*user //g'|sed 's/ from.*$//g'|sort -u > log
···
正则表达式实战技巧
191

被折叠的 条评论
为什么被折叠?



