正则表达式之基础篇
今天看了鸟哥的linux私房菜,关于正则表达式:简单做笔记如下: [:upper:] 大写字母 A-Z [:lower:] 小写字母 a-z [:digit:] 数字 0-9 [:alpha:] 字母 A-Z a-z [:alnum:] 字母和数字 A-Z a-z 0-9
首先介绍几个字符: ^ 表示行首 (^在方括号[ ]内表示不包含,在[ ]外表示行首!!!) $ 表示行尾 [] 无论括号内有几个字符,只能代表 “其中一个”!!! { } 表示字符出现的次数,由于花括号本身在shell有意义,因此使用时需加上转义字符。
grep : -n 列出行号 -v 反选(即打印出不包含后面字符的行) -i ignore 大小写。即对大小写不敏感
下面的几个例子一下就明白了: (以正则表达式与grep使用为例,当然了,只要支持正则表达式,下面的命令式通用的) grep -n 'the' a.txt //在a.txt中寻找包含the的行。 grep -vn 'the' a.txt //在a.txt中寻找不包含the的行 grep -in 'the' a.txt //在a.txt中寻找 'The','THE' 等字符,大小写不敏感。
grep -n 't[ab]ll' a.txt //在a.txt中寻找'tall' 或者是'tbll'. grep -n '[^b]ee' a.txt //在a.txt中寻找'ee',但是要求'ee'之前不能是b grep -n '[^A-Z]ee' a.txt //在a.txt中寻找'ee',但是要求'ee'之前不能是大写字母 等价于 grep -n '[^[:upper:]]ee' a.txt
grep -n '^A' a.txt //在a.txt中寻找以 A 开头的行 grep -n 'B$' a.txt //在a.txt中寻找以 B 结尾的行 grep -n '^[A-Z]' a.txt //在a.txt中寻找以 大写字母 开头的行 grep -n '^$' a.txt //在a.txt中寻找空行 grep -vn '^$' a.txt | grep -nv '^$' //在a.txt中寻找 既不是空行 也不以 # 开头的行
. 表示绝对有一个任意字符 * 表示重复前一个字符0到正无穷次 grep -n 'g..d' a.txt //在a.txt中寻找g与d之间隔两个字符的行 grep -n 'ooo*' a.txt //在a.txt中寻找至少包含两个 oo 的行 grep -n 'goo*g' a.txt //在a.txt中寻找g与g之间至少包含一个o的行 grep -n 'g.*g' a.txt //在a.txt中寻找以g开头与结尾,中间为任意字符的行 //注意此处不能是 g*g!!!
{} 用于表示连续几个字符 ,比如2-5个o grep -n 'o{2,5}' a.txt (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |