日期:2014-05-16 浏览次数:20675 次
?
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搜索到就直接显示其所对应的行.