linux技能点三 find grep

find:      1.   按文件名查找    find . -name "a*.txt"     注意双引号;

             2.   按文件大小查找 find .-size [+/-]n[bcwkKG]    +/-表示大于或小于多少,n代表数值,bcek表示单位。

             3.   按时间先后来查找 find . -amin  n :  访问时间(分钟) ;

                                           find . -atime  n :  访问时间(天);

                                           find . -mmin  n  :内容修改时间(分钟)                                 

                                           find . -mtime  n :内容修改时间(天)

                                           find . -cmin n :属性变更时间 (分钟)

                                           find . -ctime n :属性变更时间(天)

                           例子:find . -mmin 34,    第34分钟这一分钟时间段内修改的,

                                    find . -mmin -34   最近34分钟以内修改的

                                    find . -mmin +34    34分钟以前修改的

                           例子: find . -mtime -1    前24小时以内修改的

                                    find . -mtime  1     前24-48小时期间修改的

                                    find . -mtime +1     前48-72小时期间修改的

                                     注意:两个不一样    find后面的.表示当前目录

               4:目录层级    find . -mindepth n:目录最小搜索层级               比如:find . -mindepth 2 -name "a*.txt"   2级以后的

                                   find . -maxdepth n:目录最大搜索层级              比如:find . -maxdepth 2 -name "a*.txt"   2级以前的

                                   find . -maxdepth n - -mindepth n:从几到几     

               5:连接词     1.-a: and       比如:find . -name "a*" -a -type d

                                 2.-o:or          

                                 3.!:not              

               6:文件类型:-type

               7:          :-exec    -exec command {}\;意思是将find结果传递给command操作,{}是find查处的内容

                                               比如:find . -size 0c -exec ls -l {}\;find . -size 0c -exec cp -r{}demo/\; 

                                   

                                  5.列出当前目录中所有以"t"开头的目录的详细内容
                                      find . -name "t*" -type d -exec ls -l {} \;

                                  33.查找home目录下文件名为memcache.pid的文件
                                      find /home -name "memcache.pid"
                                  34.查找当前目录下所有以pid结尾的文件
                                      find . -name "*.pid"
                                  35.查找以数字开头的所有pid文件
                                       find . -name "[0-9]*.pid"
                                  36.查找以数字为文件名的所有pid文件
                                      find . -name "[0-9]*.pid" | grep '[0-9]\+.pid$'
                                  37.用户目录下,查找权限为755的文件
                                      find ~ -perm 755
                                  38.当前目录,查找所有以产u_开头的,并且权限为644的文件
                                      find . -name "u_*" -a -perm 644
                                  39.查找当前目录下面的目录
                                      find . -type d
                                  40.找当前目录下面的非目录文件
                                      find . ! -type d
                                  41.查找当前目录中,没有归属的文件
                                      find . -nouser
                                  42.查找用户组为users,所属用户为zhangy的文件
                                      find . -group users -user zhangy
                                  43.查找文件大小大于1000000字符的文件
                                      find . -size +1000000c
                                  44.查找文件大小小于1000000字符的文件
                                      find . -size -1000000c
                                 45.查找文件大小等于1000000字符的文件
                                      find . -size 1000000c
                                 46.查找5天内修改过的文件
                                      find . -mtime -5
                                 47.查找5天前修改过的文件

                                      find . -mtime +4
                                48.查找修改时间比一参考文件更接近现在的文件
                                      find . -newer reference_file
                                49.显示当前目录下面所有大于1000000c的文件,列表显示
                                      find . -size 1000000c -exec ls -l {} \;

内容查看      grep的用法:data是 随意命名的文件名

                        1.grep "home" 

                        2.grep  --color = auto "home" 

                        3.alias grep ="grep --color = aoto"

                           grep "home" 

                        4.grep "[0-9][0-9] "             两位数的查找               [匹配列表中的任意字符]

                        5.grep "[[:alnum:]]"              匹配字母和数字的字符   

                        6.grep "[^[:alnum:]]"            不匹配字母和数字字符   [匹配列表之外的任意字符]

                        7.grep "abc$"                        以abc为结尾的结束标记gr

                        8.grep "^abc"                      以abc为开始的开始标记

                        9.grep “world\|say"                       或者的意思

                        10.grep "ab\?c"                     b字符个数有0-1个。ac或者abc

                        11.grep "ab\*c"                     b字符个数是0-任意数

                        12.grep "ab\+c"                      b字符个数是1-任意数

                        13.grep "ab\{2\}c"                   b字符个数是两个

                        14.grep "ab\{2,\}c"               b字符个数是2到多次

                        15.grep "\(ab\)\{2,\}c"             ab字符个数是2到多次

                        16. grep"ab\{0,2\}c"               b字符个数是0到2次

                        17.grep -v                                     显示不匹配的行

                       18.grep -E=egrep=                         

                       19. grep -vE:17+18

                        20 .grep "a.c"                         .匹配任意单个字符

                  注意:字符串匹配建议使用‘’单引号,

                           需要转义的字符:\?  \+  \{\ }    \(\)    \|

                          \nth:引用第n个(pattern)

                           引号  ‘string’ :不论string中包含任意字符,统一视为普通字符。

                           引号 ”string“:不论string中包含任意字符,统一视为普通字符,对于、 $  ' 无效

                           ·string·:反引号是将string当命令去执行

                           \string:命令的换行继续符号,对于特殊字符的屏蔽作用。

grep测试题:以下是data文件

                    60.grep 
                               root:x:0:0:root:/root:/bin/bash
                               bin:x:1:1:bin:/bin:/bin/false
                               DADddd:x:2:2:daemon:/sbin:/bin/false
                               mail:x:8:12:mail:/var/spool/mail:/bin/false
                               ftp:x:14:11:ftp:/home/ftp:/bin/false
                               &nobody:$:99:99:nobody:/:/bin/false
                               zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
                               http:x:33:33::/srv/http:/bin/false
                               dbus:x:81:81:System message bus:/:/bin/false
                               hal:x:82:82:HAL daemon:/:/bin/false
                               mysql:x:89:89::/var/lib/mysql:/bin/false
                               aaa:x:1001:1001::/home/aaa:/bin/bash
                               ba:x:1002:1002::/home/zhangy:/bin/bash
                               test:x:1003:1003::/home/test:/bin/bash
                              @zhangying:*:1004:1004::/home/test:/bin/bash
                              policykit:x:102:1005:Po
                  61.匹配含有root的行
                      grep 'root' data
                 62.匹配以root开头或者以zhang开头的行
                      grep -E '(^root)|(^zhang)' data
                 63.匹配以zhang开头,只含有字母的单词行
                      grep -E '^zhang[a-zA-Z]*$' data
                 64.不匹配以false结尾的行,并显示行号
                       grep -nvE 'false$' data
                 65.显示包含$号的行
                      grep '\$' data

posted @ 2017-05-05 16:08  王丽松  阅读(467)  评论(0编辑  收藏  举报