当前位置:

如何使用正则表达式进行搜索,启用换行命令的野兽模式

访客 2024-04-25 1186 0

使用正则表达式在Linux中查找命令[5个示例]

使用正则表达式进行搜索,启用find命令的野兽模式。

find命令是一个强悍的命令,可以按照多种条件搜索文件。

您可以在find命令中使用正则表达式(regex)进行搜索来启用野兽模式。

但在跳到示例部份之前linux安装,了解一些基本的正则表达式标记和句型至关重要。

正则表达式令牌快速简介

标记不过是用于搜索指定模式的特殊字符。

这么让我们看一下我将在find命令中使用的一些最基本且广泛使用的标记:

Period(.)

它可以让您匹配任何字符一次(换行除外)。因而a.b将匹配acb、aeb和abb等字符串,但不会匹配accb或ab

Backslash()

linux find命令 正则 次数_linux正则匹配数字_linuxgrep正则表达式

它清除了特殊字符的影响,比如(.)将指示句点疗效,但当使用a.b时,它只会搜索字符串a.b

Asterisk(*)

它被称为中继器符号。这意味着后面的字符可以找到0次或多次。所以ca*t会找到给你ct、cat、caat等。

Squarebrackets([])

方括弧内字符串中使用的任何字符就会得到肯定的结果。这意味着a[bc]d将匹配abd或acd,但不匹配abcd。

Caret(^)

通常用于指定搜索的起点,但在方括弧[^]内使用时也可用于否定内容。意味着a[^bc]d将为您提供aed、azd,但不会提供abd或acd。

如今,让我们看一下将find与正则表达式结合使用的基本句型:

find [path] -regex [regular_expression]

这儿,

linuxgrep正则表达式_linux正则匹配数字_linux find命令 正则 次数

如今是时侯让我分享一些怎样将find与正则表达式结合使用的示例了。

使用正则表达式查找命令的实际示例

我将从最常见的场景开始linux find命令 正则 次数,其中用户只晓得文件的前几个字符并想晓得它在那儿。

当前目录下按照首字符搜索文件

目前,我的文件系统如下所示:

我想搜索以Fo或Fr开头的文件,所以我的命令是:

find ./ -type f -regex './F[or].*'

这儿,-typef用于搜索文件,./用于在当前目录中查找文件,F[or]将显示从Fo和Fr开始的文件名。

然而,假若您想对给定结果执行一些命令/程序如何办?这可以通过使用find命令和exec来完成:

搜索子目录中的文件

前面的示例仅适用于当前目录,并没有显示一些遵守相同命名模式的文件。

为此,我将使用相同的命名模式F[or]来查找子目录中的文件:

find ./ -type f -regex './[^/]*/F[or][^/]*'

看上去太复杂了对吧?让我为你分解一下。

这儿的[^/]*/引用不包含任何反斜杠的文件,因而清除了在当前目录中查找文件的可能性。

最后linux find命令 正则 次数,我用[^/]替换了句点(.),以免将搜索范围扩大到第一个子目录,并强调文件名前面不应有斜杠。

通过每位子目录中的正则表达式模式搜索文件

linux find命令 正则 次数_linux正则匹配数字_linuxgrep正则表达式

在单个子目录中搜索后看上去相当复杂,对吗?嗯,这将是最简单的一个!

好吧linux培训机构,两个星号就是这样!让我告诉你怎样做:

find ./ -type f -regex '.*F[or].*'

假如你对它是怎样工作的倍感好奇,那是由于我在开头和结尾都使用了星号,所以它经历了所有可能性。

按照扩充名搜索文件

首先,让我分享一下怎样按照扩充名搜索文件的通常句型:

find ./ -type f -regex ".*[fileextension]"

因而,假定我想找到所有文本文件(具有.txt扩充名),但是可以通过给定命令轻松完成:

find -regex -type f ".*.txt"

按照文件名和扩充名搜索文件

这是我个人最喜欢的正则表达式与find的实现,由于您可以按照首字母及其扩充名搜索文件,这十分便捷。

首先,我们看一下句型:

find ./ -type f -regex './[Filename].*.[extension]'

让我们把它显得实用一点。为此,我碰到的情况是,我只晓得文件的前几个字母(以Fo或Fr开头)及其扩充名(.sh):

find ./ -type f -regex './F[or].*.sh'

最后的话

从查找在n分钟内更改的文件到使用exec对结果执行脚本,find是提供超过50多个选项的最广泛的命令之一。

本手册解释了使用find命令的另一种方式,使您在Linux之旅中更进一步。

其实本手册很简单,但倘若您一直有任何疑惑,请在评论中告诉我。

发表评论

  • 评论列表
还没有人评论,快来抢沙发吧~