Linux指令find & grep

Linux中喜欢把被操作的对象放在最后,参数等放中间

例:find [参数] [路径] [条件] [处理对象]

find(在目录下查找符合条件的文件)

  首先,Linux中一切皆文件。“在目录下查找符合条件的文件”,这是说的“文件”包括Windows中所谓的目录即文件夹

一、参数

  -P、-L、-H

二、路径

  相对路径和绝对路径均可。

三、条件

1)根据名称查找

  -name  'a*'    查找以 a 开头的文件

  -iname 'a*'    查找以 a或A 开头的文件

  -name '*.txt'     查找以 .txt 结尾的文件

2)根据文件类型查找

  -type f      查找普通文件

  -type d        查找目录文件

  -type l        查找链接文件

  -type b        查找块设备文件

  -type c        查找字符设备文件

  -type p        查找管道文件

  -type s        查找套接字文件

3)根据文件从属关系查找

  -user  king    查找用户king拥有的文件

  -group  user1    查找组名为user1拥有的文件

  -uid 500     查找用户ID为500的用户拥有的文件

  -gid 0      查找组ID为0的用户拥有的文件

  -nouser      查找没有所属者的文件

  -nogroup      查找没有所属组的文件

4)根据文件大小查找【常用单位:k, m, g】

  -size 5k        查找小于等于5K的文件

  -size -6k         查找小于6K的文件

  -size +2g        查找大于2G的文件

  -size +3m -a  -size -6m  查找3M到6M之间的文件【-a:与】

  -size +3k -o  -size +4k   查找大于3K或4K的文件【-o:或】

5)根据时间戳查找

  atime:文件最后被读取或访问的时间

  mtime:文件最后修改的时间

  ctime:文件状态改变的时间

  【!!!不是以“天”为单位,而是以“24小时”为单位】

 

  amin、mmin、cmin  【以“分钟”为单位】

  例:

  find -atime +1     当前时间的前24小时以前

  find -atime 1     当前时间的前24小时以前到当前时间的前48小时以后

  find -atime -1      当前时间的前24小时以后

  find -atime 2     当前时间的前2*24(48)小时以前到当前时间的前2*24+24(72)小时以后

  find -atime +2     当前时间的前48小时以前

  find -atime -2      当前时间的前48小时以后

  以此类推

6)根据权限查找

  find -perm 772    查找完全匹配772的权限的文件

  find -perm -444     查找三类用户都拥有读权限的文件

  find -perm -774     查找前两类用户拥有完全控制权并且其他用户拥有读权限的文件

  find -perm /327     只要第一类用户拥有可读和可执行两个权限中的一个,或者第二类用户可读权限,或者第三类用户拥有可写、可读、可执行三个权限中的任一个的文件都会被查到

 

grep(在文件中进行文本搜索并打印)

一、参数:

  -i:忽略字符的大小写

  -n:显示行号

  -color:对查询的关键字符进行高亮显示

  -o:仅显示匹配到的字符串本身

  -v:显示不被模式匹配到的行

  -q:静默模式,即不输出任何信息

  -A #:显示被模式匹配的行及其后#行

  -B #:显示被模式匹配的行及其前#行

  -C #:显示被模式匹配的行及其前后各#行

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

二、正则表达式元字符:  

  ‘^‘: 匹配行首

  ‘$’: 匹配行尾 

  ‘.‘: 匹配任一一个字符

  ‘*’: 匹配零个或多个先前字符 

  ‘[]‘: 匹配一个指定范围内的字符 | ‘[^]’匹配指定范围外的任意单个字符

  以下用到转义字符‘\’的查询条件必须有引号

  ‘\<‘或‘\b’:匹配词首

  ‘\>’或‘\b’:匹配词尾(可用\<PATTERN\>:匹配完整单词)

  ‘\?‘:匹配其前面的字符0次或者1次;

  ‘\+’:匹配其前面的字符1次或者多次;

  ‘\{m\}‘:匹配其前面的字符m次(\为转义字符)

  ‘\{m,n\}’:匹配其前面的字符至少m次,至多n次

  ‘\(\)’:将多个字符当做一个整体进行处理

 

 特殊匹配方式

  [:space:] 匹配空格

  [:digit:] 匹配任意单个数字

     [:lower:] 匹配任意单个小写字母               

  [:upper:] 匹配任意单个大写字母

  [:alpha:] 匹配任意单个字母

  [:alnum:] 匹配任意单个字母或数字

  [:punct:] 匹配任意单个符号

 

先给大家看看我1.txt文件里的内容

查询凡是含“aj”的行并打印

查询含‘a’或‘j’的行并打印

查询行首含“aj”的行并打印

查询行尾含‘a’或‘o’的行并打印

查询词首含‘j’的行

查询词尾含‘j’或‘a’的行

查询以数字(0~9)开头的行

查询不以字母开头的行

匹配含空格的行

 

 

 

 

  

posted @ 2019-08-24 11:21  千瞳大人  阅读(691)  评论(1)    收藏  举报