加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Shell find和grep命令的区别(超详细)

发布时间:2020-12-14 02:17:15 所属栏目:Linux 来源:网络整理
导读:find 和 grep 同样都是搜索命令,两者有什么区别呢? find命令 find 命令用于在系统中搜索符合条件的文件名,如果需要模糊査询,则使用通配符进行匹配。搜索时文件名是完全匹配的。 完全匹配是什么意思呢?举个例子: [root@localhost ~]# touch abc #建立文
find 和 grep 同样都是搜索命令,两者有什么区别呢?

find命令

find 命令用于在系统中搜索符合条件的文件名,如果需要模糊査询,则使用通配符进行匹配。搜索时文件名是完全匹配的。

完全匹配是什么意思呢?举个例子:

[root@localhost ~]# touch abc
#建立文件abc
[root@localhost ~]# touch abcd
#建立文件abed
[root@localhost ~]# find. -name "abc"
./abc
#搜索文件名是abc的文件,只会找到abc文件,而不会找到abcd文件
#虽然abcd文件名中包含abc,但是find是完全匹配的,只有和要搜索的数据完全一样,才能找到

完全匹配的意思就是:搜索的内容必须和原始文件一模一样,才能被搜索到。

如果想要找到 abcd 文件,就必须依靠通配符,如 find.-name"abc*"。

注意,find 命令是可以通过 -regex 选项识别正则表达式规则的,也就是说,find 命令可以按照正则表达式规则匹配,而正则表达式是模糊匹配。但是对初学者而言,find 和 grep 命令本身就不好理解,所以在这里只按照通配符规则来进行 find 查询。

grep命令

grep 命令用于在文件中搜索符合条件的字符串,如果需要模糊査询,则使用正则表达式进行匹配。搜索时字符串是包含匹配的。

grep 命令和 find 命令不一样,使用 grep 命令在文件中査找符合条件的字符串时,只要搜索的内容包含在数据行中,就会列出整行内容。举个例子:

[root@localhost ~]# echo abc > test
#在test文件中写入abc数据
[root@localhost ~]# echo abed >> test
#在test文件中追加abcd数据
[root@localhost ~]# grep "abc" test
abc
abcd
#grep命令査找时,只要数据行中包含abc,就会列出
#所以abc和abcd都可以查询到

通过这两个例子,大家就可以知道完全匹配和包含匹配的区别了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读