码迷,mamicode.com
首页 > 系统相关 > 详细

linux学习笔记-第十二课-Shell脚本之正则表达式(一)

时间:2015-04-11 21:08:27      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:linux   字符串   表达式   单词   file   

一、grep,egrep,fgrep

       1)grep

       格式:grep [选项] [模式] [文件名]

       常用选项:-n:显示行号和匹配的行

                        -v:反向匹配

                        -c:不显示匹配的行,只显示匹配的行数

                        -i:忽略大小写

                        -r:递归搜索

                        -E:支持扩展正则表达式

                        -P:支持Perl正则表达式

                        -F:不支持正则表达式,将模式按字面意义匹配

        示例:

      

grep示例
说明
grep ‘\<Tom>\‘ file
显示包含单词Tom的行
grep ‘Tom Jerry‘ file
显示包含‘Tom Jerry’的行
grep ‘^Tommy‘ file
显示以Tommy字符串开始的行
grep ‘\.bak$‘ file
显示行的末尾以.bak结束的行
grep ‘[Pp]hoto‘ *
显示当前工作目录的所有文件名中包含photo或Photo的文件名
grep ‘[A-Z]‘ file
显示至少包含1个大写字母的行
grep ‘[0-9]‘ file
显示至少包含1个数字的行
grep ‘[A-Z]...[0-9]‘ file
显示以大写字母开始、以数字结束的5个字符串模式的行
grep -w ‘[tT]est‘ file
显示包含但是Test和test的行
grep -s ‘TY Kim‘ file搜索包含‘TY Kim‘的行,但是不显示在屏幕
grep -v ‘Jerry‘ file显示不包含‘Jerry‘的所有行
grep -i ‘sam‘ file忽略大小写字母,显示所有包含sam的行
grep -l ‘Dear Boss‘ *显示包含‘Dear Boss‘的所有文件目录
grep -n ‘Tom‘ file显示包含Tom的行,同时显示行号
grep "$name" file显示所有拥有name变量值的行。使用变量时必须使用双引号(" ")
grep ‘$5‘ file
显示包含‘$5‘字符的行。单引号内的$字符被识别为其本身
ps aux | grep ‘^*multi‘
将ps的显示结果通过管道符和grep连接,显示行首有空格并包含multi的所有行


       2)egrep

       egrep是grep的扩展,可以使用其他的通配符

       +:有1个以上的字符

       ?:有0个或1个字符

        a|b:匹配a或b的字符

        ():字符组


       3)fgrep

        类似于grep,将特殊字符及$字符识别为其本身


二、sed

       非交互式文本文件编辑器

       常用选项:

       -n:取消默认输出

       -e:允许执行多个脚本

       -i:直接修改原始文件

       -r:使用扩展正则表达式

       示例:

sed示例
含义
8d
删除输入的第8行
/^$/d
删除所有空行
1,/^$/d
从第一行起 删除直到 发现空行
/Jones/p
只显示包含“Jones”的行(使用-n选项)
s/Windows/Linux/
在输入的各行用“Linux”替换第一次出现的“Windows”
s/Windows/Linux/g在输入的各行用“Linux”替换每次出现的“Windows”
s/*$//
删除所有行尾出现的空格
s/00*/0/g
以0替换所有连续出现的0
/GUI/d
删除包含“GUI”的所有行
s/GUI//g
在输入的各行删除“GUI”三个字符

       



本文出自 “MyLinux” 博客,请务必保留此出处http://mylinuxlife.blog.51cto.com/4706737/1631181

linux学习笔记-第十二课-Shell脚本之正则表达式(一)

标签:linux   字符串   表达式   单词   file   

原文地址:http://mylinuxlife.blog.51cto.com/4706737/1631181

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!