日期:2014-05-16  浏览次数:20644 次

linux下find和grep两大重要命令(内含正则表达式的基础部分)

?

linux下find和grep命令特别重要,所以特别列一块来说说它们俩.

一:find命令

????1:find命令的格式:????find [path] [options] [tests] [actions]

????2:find命令的应用:????find /var /home -mount -name "filename" -type c -print

????3:说明:????/var /home是path(路径)? find命令同时搜索这两个目录,可以同时搜索几个目录

??????????????????-mount是options(选项)????find命令就不会搜索其它文件系统

??????????????????-name "filename"是tests(测试)????找到filename这个名字的文件

??????????????????-type c也是tests(测试)????找到文件类型是c的,也可以使用d,f分别来表示目录和普通文件

??????????????????-print 是actions????找到文件后,同时也满足测试,就把它的文件名打印出来.

二:grep命令(General Regular Expression Parser):通用正则表达式解析器

????1:grep命令的格式:????grep [options] PATTERN (FILES)

????2:grep命令的应用:????grep -c string file1.txt file2.txt

????3:说明:????-c是options????统计搜索得到的字符串的行的个数.这里就只打印匹配的行数了.没这个参数这把行里的东西全部打印出来;

???????????????????string是PATTERN????是要在txt或者其它文件中搜索的字符串;

???????????????????file1.txt file2.txt????是要在file1.txt和file2.txt里面找;

三:正则表达式

????1:正则表达式的常用的特殊字符说明(前面是特殊字符,括号内是字符的含义):^(指向一行的开头)????$(指向一行的结尾)??????.(任意单个字符)????[](方括号里面表示其中任意一个字符都可以被匹配.也有种方式不匹配的,就是在前面加上^)

????2:正则表达示的常用的匹配模式和含义说明(前面是匹配模式,括号内是含义):[:upper:](大写字母)????[:lower:](小写字母)????[:space:](空白字符)????[:blank:](空格或者制表符)????[:ascii:](ASCII字符)????-->注意:这边对应grep的PATTERN(模式)

????3:正则表达式的选项和含义说明(前面是选项,括号内是含义):?(匹配是可选的,但最多只能匹配一次)????*(可以匹配0次或者多次)????+(要匹配至少一次)????{n}(必须匹配n次)????{n,}(要匹配n次或者n次以上)????{n,m}(要匹配n到m中的任何一个数字的次数,可以是n,也可以是m)

四:举例说明正则表达式的使用:

????1:grep e$ words.txt????说明:这里是寻找以e为结尾的行,并把这行打印出来

????2:grep a[[:blank:]] words.txt????说明:这里是寻找以a结尾的单词的行,并打印出来.外层的[]表示匹配里面的任一字符,而[:blank:]表示一个空格或者制表符,所以就可以达到我们的目的.

????3:grep -E [a-z]\{10\} words.txt????说明:使用扩展的grep模式来匹配一个连续有十个小写字母的单词.

????注意:以上grep搜索到就直接显示其所对应的行.