正则表达式初步
正则表达式:描述具有某种特征的字符串的表达式。 正则表达式由普通字符与特殊字符(元字符)组成。 基本元字符集 ^ 在每行的开始进行匹配
grep命令示例 grep ^public t1.txt 查找t1文件中行首包含public的行。 grep public$ t1.txt 查找t1文件中行尾包含public的行。 grep -n ^$ t1.txt 查找t1文件中的空行。n表示打印的行数。 查找只包含一个字符的行。 被解析为 grep -n <public t1.txt(无效) 查找单词开头部分出现public的行。加‘’ 抑制shell对特殊字符的解析。 查找单词结尾部分出现public的行。
grep -n 11[MNX] t1.txt 查找包含字符 11M 或 11N 或 11X的行。
grep -n 11[^MNX] t1.txt 查找包含字符 11 且不包含字符11M 或 11N 或 11X的行 。 grep -n “” t1.txt 查找不到。关于“”只能抑制shell对部分字符的解析(如() []),不能抑制 。所以shell接收,解析成 ,会把传给grep. grep -n “\” t1.txt查找包含 的行 查找包含 的行 grep -n go*d t1.txt 查找包含g(0到n个o)d的行。如gd,god,good,goood…… grep -ni public t1.txt 查找包含public的行,不区分大小写。
+ 对前一项进行1次或多次重复匹配
查找一个或多个o。-E表示为扩展字符集。(或者egrep -n …效果一样的) grep -En 10{3}A t1.txt 对0进行3次重复匹配,查找1000A所在的行。 grep -En 10{2,4}A t1.txt grep -En ‘10{2,4}A‘ t1.txt grep -En “10{2,4}A” t1.txt 三个效果一样,查找2到4个0的行。 100A, 1000A, 10000A。 匹配11A或11B的行。 |对shell来说是管道,印制特殊含义。 匹配0个或多个works. 括号内当作一项。
查询多个文件,可以使用通配符* grep -n test *.txt 查找包含test字符的所有文件的所在行。 grep -ln test *.txt 只列出哪些文件包含test. n不在起作用。如果一个文件多处包含,文件也只匹配一次。 反向匹配 -v ps aux| grep "ssh" | grep -v "grep" 查找包含ssh的进程,且不包含grep进程。 递归搜索目录中的所有文件:-r grep -rn telnet/etc 查找etc文件及子目录文件下包含telnet的行。
正则表达式在vi中的使用例子 在当前行中删除从aa到zz的所有字符。 s表示替换。1,$表示整个文件。
稍复杂的例子 foo(10,7,2) 替换为 foo(7,10,2) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |