您的位置:首页 > 健康 > 养生 > linux查找/搜索命令

linux查找/搜索命令

2024/10/5 22:27:59 来源:https://blog.csdn.net/qq_57484399/article/details/140420929  浏览:    关键词:linux查找/搜索命令

(1)find

在windows中搜索文件, 一般查找文件需要传入两个条件:

① 在哪些目录中查找;

② 查找的内容;

在linux中, 查找文件的也需要这两个条件, 不同于windows使用搜索框查找, linux中使用find 命令查找文件

find命令格式为:

find 目录名 选项 查找条件

举例1:

find /home/book/diral/ -name "test1.txt"

说明:

• /home/book/dira/ 指明了查找路径

• “-name” 表示以名字来查找文件

• “test1.txt” , 就指明查找名为 "test1.txt"的文件

举例2:

find /home/book/diral/ -name "*.txt"

说明: 查找指定目录下面所有以".txt"结尾的文件, 其中"*" 是通配符,

举例3:

find /home/book/diral/ -name "dira"

说明: 查找指定目录下面是否存在 "dira"这个目录或文件, "dira"是名称

注意:

① 如果没有指定查找目录 , 则默认为当前目录

find . -name "*.txt"	//其中 . 代表当前路径
find -name "*.txt"		//没加路径,默认是当前路径下查找

② find 还有一些高级用法, 如查找最近几天(几个小时)之内(之前)有变动的文件

find /home/book -mtime -2	//查找/home目录下两天内有变动的文件

(2)grep

grep的命令作用是查找文件中符合条件的字符串, 其格式如下:

grep [选项] [查找模式] [文件名]

加入dira目录的test1.txt 和dirb目录的test1.txt都含有如下内容:

aaa AAAA abc abcabcabc cabcbacba match_patern nand->erase

通过查找字符串 , 我们希望显示如下内容:

① 所在文件名—grep 查找时默认已经显示目标文件名

② 所在的行号—使用-n选项

grep -rn "字符串" 文件名

其中 r (recursive):递归查找

n(number):显示目标位置的行号

• 字符串:要查找的字符串

• 文件名: 要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目录

举例:

//在test1.txt中查找字符串 abc

grep -n "abc" test1.txt

//在当前目录递归查找字符串abc

grep -rn "abc" *

注意可以加入**-w**进行全字匹配

更骚的操作举例:

可以在grep的搜索结果中,再次执行grep搜索,

也就是第2个命令在第一个命令的结果中搜索

grep "ABC" * -nR | grep "\.h"

| 管道符号用于将一个命令的输出作为另一个命令的输入。在这个例子中,第一个grep命令的输出(即所有包含“ABC”的行的信息)被传递给第二个grep命令。

grep "\.h"

  • 第二个grep命令接收来自第一个grep命令的输出作为输入。
  • "\.h" 是要搜索的模式,用于匹配以.h结尾的字符串。注意,由于.在正则表达式中有特殊含义(表示任意单个字符),因此在这里需要使用反斜杠\来转义,表示字面上的.字符。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com