Linux常用命令(二)_搜索类命令find、grep

   日期:2020-09-08     浏览:105    评论:0    
核心提示:1.grep命令作用:指定文件执行关键词搜索。grep 关键词 [文件/目录] [option]实例1:grep “test_text” file_1 file_2 —color=auto在多个文件中查找包含“test_text”的文本行,标记并返回。示例2:grep -o -E “[a-c]+” 或 egrep “[a-c]+”-E:正则匹配 (关于正则匹配,之后可能要再写一篇简单博客)-o: 只输出 文件中匹配到的部分。这里用到了管道符号(|),详解下一个命令。示例3

文章目录

    • 1. find命令
      • 1.1 基本语法
      • 1.2 实例
      • 1.3 find与-exec、xargs
    • 2.管道符(|)
    • 3.grep命令
      • 3.1 基本语法
      • 3.2 实例

find命令用于在目录中匹配文件,grep命令用于在文件中匹配关键词

1. find命令

1.1 基本语法

find [搜索范围] [option]

option种类 功能
-name<查询方式> 按照指定的文件名查找模式查找文件
-user<用户名> 查找属于指定用户名所有文件
-size<文件大小> 按照指定的文件大小查找文件
-perm<755> 按照文件权限查找文件
-mtime -n +n 按照文件的更改时间查找文件。 -n表示距现在n天以内,+n表示距现在n天前
-type<文件类型> 表示查找某一类型的文件 b\d\c\p\l\f

1.2 实例

find . -name “* .txt”
find . -iname “.txt”
find /usr/ -path ‘* local* ’
find . -regex “.*(.txt|.pdf)$”

搜索大于(小于/等于)10K的文件并删除
find . -type f -size +(-/空)10k -delete

搜索权限不为777的文件 按执行权限来查找
find . -type f ! -perm 777

搜索tom的所有文件
find . -type f -user tom

最后10min 访问的文件
find /home -amin -10

最近两天访问的文件
find /home -atime -2

5min里修改过的文件
find / -mmin -5

1.3 find与-exec、xargs

  • find与-exec

-exec 执行该参数所给出的shell命令。相应的命令形式为“command” {} ; {} 与;有空格。
find . -type f -user root -exec chown tom {} ;

-ok 安全模式执行shell命令。-ok和-exec行为一样,不过它会给出提示,是否执行相应的操作。
find . -name " *.txt" -ok rm (http://man.linuxde.net/rm) {} ;

  • find与xargs

在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。

find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

用grep命令在所有的普通文件中搜索hostname这个词
find . -type f -print | xargs grep “hostname”

删除文件大小为零的文件
find ./ -size 0 | xargs rm -f & 删除文件大小为零的文件

2.管道符(|)

作用:将前面命令的标准输出作为后面命令的标准输入

3.grep命令

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

3.1 基本语法

grep 关键词 [文件/目录] [option]

option种类 功能
-c / --count 只打印匹配的行数,不显示匹配的内容
-f File / --file=File 从文件中提取模板
-i / --ignore-case 忽略大小写
-l / --files-with-matches 打印匹配模板的文件清单
-L / --files-without-match 打印不匹配模板的文件清单
-n / --line-number 在匹配的行前面打印行号。
-w,–word-regexp 如果被<和>引用,就把表达式做为一个单词搜索

3.2 实例

在多个文件中查找包含“test_text”的文本行,标记并返回。
grep “test_text” file_1 file_2 —color=auto

-E:正则匹配 -o: 只输出 文件中匹配到的部分。
grep -o -E “[a-c]+” 或 egrep “[a-c]+”

-c:统计文件和文本中包含匹配字符串的行数
grep -c test_text/“test_text” file_1 file_2

-r:递归搜索 -n:显示关键词在文件的第几行
grep “test_text” . -r -n 在多级目录中对文本进行递归搜索。

-i 忽略大小写 -n 显示搜索字符所在行数。
grep -i HELLO -n text1

-e 制动多个匹配样式
grep -e “only” -e “hello” -o -n text1

只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’)
grep -w pattern files

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服