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搜索到就直接显示其所对应的行.

你可能感兴趣的:(linux,find,grep)