Linux文件查看与查找命令(3)

\3:模式从左侧起,第三个括号以及与之匹配的右括号之间的模式所匹配到的字符

[root@linuxidc ~]# grep "r..t" /etc//passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [root@linuxidc ~]# grep "^\(r..\)t.*\1" /etc//passwd root:x:0:0:root:/root:/bin/bash

egrep:支持扩展的正则表达式实现类似于grep文本过滤功能

-G:支持基本正则表达式

扩展正则表达式

字符匹配

.:匹配任意单个字符

[]:匹配指定范围内的任意单个字符  ——>  如:[abc] a | b | c

[^]:匹配指定范围外的任意单个字符 ——>  如:[^abc] 除abc之外的字符

[:alnum:] 数字和字符

[:alpha:] 英文大小写字符 a-z A-Z

[:lower:] 小写字母

[:upper:] 大写字母

[:space:] 专门匹配空格

次数匹配:

匹配次数:用在要指定其出现的次数的字符的后面,用于限制其前面字符出现的次数

*:匹配其前面的字符任意次    0-无穷

?:0或一次,其前的字符是可有可无的

+:其前的字符至少一次

{m}:其前的字符m次

{m,n}:至少m次,至多n次

位置锚定:

^:行首锚定

$:行位锚定

\<  \>:词首锚定

\b  \b:词首锚定

分组及引用:

():分组,括号内的模式匹配到的内容会被正则表达式引擎自动记录于内部的变量中

\1:模式从左侧起,第一个括号以及与之匹配的右括号之间的模式所匹配到的字符

\2:模式从左侧起,第二个括号以及与之匹配的右括号之间的模式所匹配到的字符

\3:模式从左侧起,第三个括号以及与之匹配的右括号之间的模式所匹配到的字符

或:

a|b:a或者b

C|cat:C或cat

(c|C)at:cat或Cat

例如:找出etc/passwd文件中的两位数或三位数

[root@linuxidc ~]# egrep "\<[0-9]{2,3}\>" /etc/passwd mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [root@linuxidc ~]# egrep "\<[0-9]{2,3}\>" /etc/passwd | cut -d: -f3,4 8:12 10:14 11:0 12:100 13:30 14:50 99:99 81:81 113:113

文件查找命令

find:实时查找工具,根据我们指定的内容或者条件在系统上进行实时查找

根据文件名查找

-name 可以使用通配符 比如 * ? [] [^]

find . -name “????”

例如:我想找某个文件名叫 yum 在/etc下

[root@linuxidc ~]# find /etc/ -name "yum" /etc/logrotate.d/yum /etc/yum

-iname 文件名称忽略大小写

[root@linuxidc ~]# find /etc/ -iname "think" /etc/test/think /etc/test/Think

根据属主和属组来查找

-user  (查找属主指定用户的所有文件)

-group (查找属组指定组的所有文件)

-uid   (查找属主指定的UID的所有文件)

-gid   (查找属组指定的GID的所有文件)

-nouser 查找没有属主的文件或者目录  

-nogroup 查找没有属组的文件或者目录

drwx------. 2 gdm gdm 4096 Apr 8 21:00 orbit-gdm drwx------. 2 gdm gdm 4096 Apr 8 21:01 pulse-AThZYiEcGGK5 -rw-r--r--. 1 root root 0 Apr 1 11:38 tianjin [root@linuxidc ~]# find /tmp -user gdm /tmp/orbit-gdm /tmp/orbit-gdm/linc-8ff-0-1f7ec1765e7bc /tmp/orbit-gdm/linc-8d7-0-2f1d8aa3391d9 /tmp/orbit-gdm/linc-900-0-6e691ca28c58d /tmp/orbit-gdm/linc-8fe-0-16fedb9f41908 /tmp/orbit-gdm/linc-8fd-0-12f82f71240f1 /tmp/orbit-gdm/linc-905-0-3d0482583370 [root@linuxidc ~]# find /tmp -group gdm /tmp/orbit-gdm /tmp/orbit-gdm/linc-8ff-0-1f7ec1765e7bc /tmp/orbit-gdm/linc-8d7-0-2f1d8aa3391d9 /tmp/orbit-gdm/linc-900-0-6e691ca28c58d /tmp/orbit-gdm/linc-8fe-0-16fedb9f41908 /tmp/orbit-gdm/linc-8fd-0-12f82f71240f1 /tmp/orbit-gdm/linc-905-0-3d0482583370 /tmp/orbit-gdm/linc-8fc-0-2f41c894bb0a2

根据文件类型查找

-type f 普通文件

d 目录

l 链接文件

s 套接字文件

b 块设备

c 字符设备

p 管道

[root@linuxidc ~]# find /dev -type b -ls 11341 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram9 11330 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram7 11320 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram8 11310 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram6 11302 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram5 11286 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram3 11277 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram4

组合条件:

与:-a

或:-o

非:-not, !

多个条件要使用\(\)  不能使用“”

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13935.html