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

Linux 之正则表达式

时间:2015-04-02 06:52:49      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:表达式   linux   字符串   

抱怨只是无能的表现,无它。      ——马哥,永远都是正能量


  • 正则表达式:

    • 理解:由元字符及正常字符拼凑的一中模式,根据目标字符或字符串的某些特征总结出来的对应的“公式”

    • 作用:可用于文件查找,模式匹配等等

    • 字符匹配:

      • .:匹配任意单个字符

      • []:匹配指定范围内的任意单个字符

      • [^]:匹配指定范围外的任意单个字符的

    • 次数匹配:

      • *:其左侧的字符出现任意次

      • .*:任意长度任意字符

      • \?:其左侧的字符出现0次或1此

      • \+:其左侧的字符出现1次或多次

      • \{m\}:精确匹配其左侧的字符出现m此

      • \{m,n\}:匹配其左侧字符至少出现m次,至多出现n次

    • 位置锚定:

      • ^:锚定行首

      • $:锚定行尾

      • \<:锚定词首

      • \>:锚定词尾

      • ^$:匹配空白行,包括行中只有空格和制表符的行!!!

      • \(\):分组。这个感觉比较高大尚。分组模式中,在某次匹配过程中所匹配到的字符,被grep暂时记忆(保存到内置变量\1,\2,...中),故而

      • \1:引用自左向右的第一个括号以及与之对应的又括号中的内容

  • 练习如下:

    • 找出/proc/meminfo文件中以大写S或小写s开头的行:

      • grep --color=auto "[^sS]" /proc/meminfo
    • 显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户及默认shell

      • grep -v "/sbin/nologin$" /etc/passwd | cut -d: -f1,7


    • 显示/etc/passwd文件中的一位数或两位数(不包括三位及三围以上数字)

      • grep "\<[0-9]\{1,2\}\>" /etc/passwd

    • 显示/boot/grub/grub.conf文件中至少以一个空白字符开头且后跟i字符的行

      • grep "^[[:space:]]\+i" /boot/grub/grub.conf

    • 找出系统上其用户名和默认shell相同的用户的信息

      • grep "^\([[:alnum:]]\>\).*\1$" /etc/passwd

    • d



本文出自 “运维狗” 博客,请务必保留此出处http://yunweigou.blog.51cto.com/6299641/1627427

Linux 之正则表达式

标签:表达式   linux   字符串   

原文地址:http://yunweigou.blog.51cto.com/6299641/1627427

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