标签 搜索 下的文章

使用 GNOME 的 Nautilus 文件搜索,通过这些方便的提示改善您的文件搜索体验,成为一名专业的搜索者。

GNOME 的 Nautilus 文件管理器功能丰富。

不信?看看这篇文章,你就会知道如何将 Nautilus 的全部功能 发挥到极致。

文件搜索是 Nautilus 被忽视的功能之一。没有多少 Linux 用户充分发挥了它的潜力。

因此,我编写了本教程,与大家分享一些使用 Nautilus 文件管理器中文件搜索选项的技巧。

我知道经验丰富的 Linux 用户可以使用终端中的 find 命令 实现相同的目的,但许多桌面用户更喜欢使用 GUI。

让我们从最简单的搜索选项开始。

按名称搜索文件

打开 Nautilus 并单击顶部栏上的放大镜。这将打开一个搜索栏,你可以在其中输入查询字符串。

当你输入时,搜索结果会不断完善,并在输入完整文件名时进行匹配。

在 Nautilus 中搜索

? 搜索在当前目录及其子目录中执行。可以启用 隐藏文件视图,将隐藏文件包含在搜索结果中。

根据时间搜索文件

使用 Nautilus,你可以根据文件的创建、修改或上次访问的时间过滤搜索。

为此,请单击搜索按钮并开始输入。当你开始输入时,你会注意到搜索按钮附近有一个下拉菜单。点击它。这将为你提供一个菜单,其中包含用于过滤搜索的选项。

单击下拉菜单

单击下拉菜单上的 “ 选择日期 Select Dates ” 按钮。另外,选择选项 “ 文件名 File Name ” 以按文件名匹配。

按日期搜索的设置

这将为你提供一个扩展菜单,你可以在其中选择文件创建、修改或上次访问的日期。

设定标准

在这里,如果你想设置自定义日期,请单击日历图标,如下图所示:

点击日历图标

现在,你将看到一个小日历,并可以相应地选择日期。

选择日期

从列表中设置你选择的日期后,你可以看到搜索栏上应用的条件,并向你显示基于该条件的文件。

应用日期标准

根据文件类型搜索文件

你还可以根据文件类型过滤搜索。假设你正在寻找 PDF 文件。

与上一步一样,单击搜索图标并开始输入文件名。现在,从下拉菜单中,单击 “ 任何 Anything ” 选项并选择 “ 文件名 File Name ”。

根据文件类型搜索

从展开的视图中选择要搜索的文件类型。在这里,我选择了 “PDF/Postscript”。

设置所需的文件类型

选择所需的文件类型后,你可以在搜索栏上看到应用的条件。你还将看到相应的结果。

应用文件类型标准

在搜索选项中没有找到所需的文件类型?向下滚动到底部并单击 “ 其他类型 other types ”。

获取更多文件类型

这将为你提供更多文件类型。

列出更多文件类型

搜索文件内容,而不是名称

默认情况下,根据文件名执行文件搜索。如果你想知道是否有包含特定单词的文件,Nautilus 也允许你这样做。

首先,单击搜索图标并开始输入。现在,与前面的部分一样,转到下拉菜单。

在下拉菜单中,不要选择 “ 文件名 File Name ”,而是选择 “ 全文 Full Text ”。

现在,你可以搜索特定字符串并根据特定日期或文件类型进行搜索过滤。过滤的方法与前面提到的相同。

选择“全文”选项

在这里,我使用了字符串 “text to be”,你可以看到列出了几个具有该特定字符串的文件。另外,你可以看到,该部分也突出显示。

仅搜索文件或仅搜索文件夹

默认情况下,Nautilus 会搜索文件和文件夹。你可以将搜索细化为文件或文件夹。

为此,请在下拉菜单中选择 “ 文件名 File Name ”,然后从类型列表中选择 “ 文件 Files ” 或 “ 文件夹 Folders ”,如下所示。

仅在文件或文件夹中搜索

这将根据你的选择过滤结果。

应用多个过滤器

你可以将日期过滤器和类型过滤器组合在一起以获得更精确的搜索。为此,请从各自的下拉列表中选择每个条件。

你可以在下面的截图中看到,我已经搜索了包含字符串 “to be search” 的文件。我应用的标准是 1 天内创建的 PDF 文件。

应用多个过滤器

更多 Nautilus 提示和调整

Nautilus 足以满足大多数搜索场景。如果你需要更多,还有专用的 GUI 工具,可让你执行桌面范围的自定义搜索。

ANGRYsearch - 用于 Linux 的快速搜索图形用户界面工具

想要更多这样的 Nautilus 技巧吗? 以 root 身份打开文件 怎么样?

在 Nautilus 文件管理器中以管理员身份打开文件和文件夹

或者将终端的功能与文件管理器结合起来?

在 Linux 中混合搭配终端与 Nautilus 文件管理器

这里还有更多此类提示。请自行查看。

在 Linux 中调整 Nautilus 文件管理器的 13 种方法

我希望你喜欢这些技巧,它们有助于更好地改善你的桌面 Linux 体验。

你还知道其他这样酷的技巧吗? 请在评论中分享。

(题图:DA/77ae519f-e942-42b0-9808-4af943b168cb)


via: https://itsfoss.com/nautilus-file-search/

作者:Sreenath 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

1 海尔要求开发者下架开源的家庭助理插件

海尔向一名德国开发人员发出了一份移除通知,要求他立即从 GitHub 平台上删除他为该公司家电产品开发的 家庭助理 Home Assistant 集成插件。“家庭助理”是一个开源的家庭自动化平台,用户可以通过一个集中的界面控制智能家居设备并使其自动化。除了便利性和成本外,该平台还提供了同类商业应用程序所不具备的卓越安全和隐私选项。在通知中,海尔声称“这些插件正在以未经授权的方式”使用其服务,对该公司“造成了重大经济损失”,侵犯了海尔的知识产权,要求开发者“立即停止和终止与开发和分发这些插件有关的所有非法活动”,以避免进一步的法律诉讼。

(插图:DA/8f1893ad-26f3-4a81-ba82-082d55411b91)

消息来源:Bleeping Computer
老王点评:愿开源开发者们不要为这种公司开发任何相关软件,以免惹火上身。大家知道那些家电厂商是支持开源软件的吗?

2 ReiserFS 作者在狱中回应被内核移除

ReiserFS 文件系统作者 Hans Reiser 因谋杀妻子被判处监禁。去年底,他在狱中回复了一封长长的纸质信函,回应了内核的相关讨论,在信中对自己的罪行表示了道歉,称自己已经是不同的人了。他随后讨论了对 ReiserFS 的贬低以及他对 Reiser4 的希望,对曾使用 ReiserFS 的发行版 SUSE 没能在市场上取得成功而遗憾。在 Linux 6.6 中,ReiserFS 已被正式标记为“过时”,将在未来几年来从主线内核中移除。

(插图:DA/2746e103-ffc0-4bd8-a44e-71c5f68ebc0e)

消息来源:Phoronix
老王点评:可惜了。

3 谷歌推出画圈即搜索的“画圈搜索”功能

谷歌最近推出的“ 画圈搜索 Circle To Search ”功能,可以让你在手机屏幕上圈出某样东西,然后点击一个按钮,即可通过谷歌搜索你圈出的东西。该功能将首先在谷歌和三星的五款手机上推出。它可以设备上的任何地方搜索,而无需打开谷歌应用。它也可以结合谷歌的“多重搜索”功能,你可以用圈出的图片和文字组合搜索。谷歌称,当你想知道 “为什么” 而不仅仅是 “是什么” 时,多重搜索就是你需要的工具。

(插图:DA/16af5a4f-cb25-4e9a-8c6a-c0b4dbb66a9c)

消息来源:The Verge
老王点评:看起来是有趣的功能,尤其是和 AI 结合起来的话会更有用。

GNOME 的桌面环境中隐藏着丰富的搜索特性,爱探索的你不妨尝试寻找。挖掘新知,将是一场乐趣无穷的旅程。

在我之前的 一篇文章 中,分享过在 Nautilus 文件管理器中如何掌握搜索的技巧。

在这次的教程中,我将介绍 GNOME 活动区域中一些被忽视的搜索功能。

如果 “ GNOME 活动 GNOME Activities ” 这个术语你并不熟悉,你可以在 GNOME 桌面环境的左上角找到并点击 “ 活动 Activities ” 按钮,进入相应界面。

点击活动以访问

你也可以通过按下 Super 键(即:Windows 键)来快速访问。

GNOME 搜索界面

尽管 GNOME 内置了强大的搜索功能,但大部分人却仅仅用它来搜索和运行应用。

大部分人用 GNOME 活动来搜索和运行应用

而实则,它还有更多的功能等待你去探索,这些可能在你使用过程中派上大用场,同时让你带上专业用户的范儿。

就让我们逐个介绍这些隐藏功能吧。

1、全局文件搜索

这个功能和打开应用非常类似。当你在搜索区域开始输入,你会发现搜索结果在不断的变化。如果有文件与你的搜索关键词匹配上,你可以点击文件名,也可以按回车,以默认的应用打开它。

文件搜索

在同一界面中,你可以看到每个文件都有一个小型的预览。并且,列表中的每个文件都会标注其完整路径。

如果你细看,你会发现这里有一个文件管理器的图标,点击它。

文件管理器图标

点击后,会打开 Nautilus 文件管理器,并进入搜索模式,你可以看到所有匹配到的文件。

Nautilus 文件管理器的搜索模式

同样的,如果你点击了搜索结果中的某个应用图标,将打开这个应用,并同时展示相应的搜索结果。

? 如果你已经安装了 GNOME Sushi,你甚至可以在开始使用这些文件前,使用全屏模式预览它们。

2、复制表情符和特殊字符

GNOME 提供了一个名为 gnome-characters 的应用,它包含了许多表情符以及相关字符。如果你还未安装这个应用,可以使用以下命令进行安装:

sudo apt install gnome-characters

安装完成后,这个应用将配置自己的搜索提供器。这意味着你能够搜索任何字符的名称,并且在输入过程中,系统会为你提供各种搜索建议。

搜索概览中的字符

一旦你找到了想要的字符,按回车键,就可以将其复制到剪贴板。然后使用 CTRL+V 进行粘贴。

字符已复制

3、不必打开计算器便能进行计算

你完全可以利用 GNOME shell 的搜索功能当作一个快捷的计算器。对于一些简单的数学运算,并无必要额外打开计算器应用。

相反,你可以直接在 GNOME 活动区域内完成计算。

获取计算结果

此外,你还可以将计算结果复制到剪贴板。

4、轻松获取全球时间

想要知道另一个城市现在的具体时间吗?不必使用其他小工具或程序,仅仅输入城市名称,GNOME shell 就能告诉你该地的时间。

GNOME Shell 搜索中的世界时钟

5、方便地在运行中的终端窗口之间切换

假设你同时运行了多个终端窗口,或者在同一终端窗口中打开多个标签,各自运行了不同的活动命令,例如 top,或者用 bat 或 less 在读取某个文件等,

你可以通过在 GNOME shell 搜索中输入命令名称,快速定位到正在运行该命令的终端窗口。

获取运行中的终端窗口

你会发现,我在其中一个终端中运行了 top 可以直接跳转到此终端窗口。若这是在不同的标签中,它也能帮你切换到运行着这个特定命令的标签页。

6、执行网络搜索

你可以通过 GNOME Shell 直达 Firefox 的网页搜索。为能实现这个功能,你需要先在后台打开 Firefox。

设置中的 Firefox 角色——搜索提供器

启动 Firefox 后,你可以在活动概览中搜索并找到网页结果。除此之外,你还可以在系统设置中,根据你的喜好对 Firefox 的显示顺序进行调整。

Firefox 搜索结果

? 遗憾的是,在我使用的 Fedora 38 系统中,虽然 Firefox 是搜索提供器,但我无法从中获得任何搜索结果。但在 Manjaro 上,一切运行正常。

如果你使用的是其他的发行版,你可以在 GNOME shell 搜索中,通过 Epiphany 或 GNOME Web 浏览器来访问网络搜索结果。首先,你可以使用你的包管理器来安装 Epiphany:

sudo apt install epiphany

或者,你也可以从 Flathub 安装:

flatpak install flathub org.gnome.Epiphany

安装完成后,打开设置,找到搜索功能。这时,你会看到 GNOME Web 已经出现在列表中了。

搜索设置中的 GNOME Web

如果它未被激活,只需开启这个开关。即使 GNOME Web 并没有被打开,它仍能正常工作。

使用 GNOME Web 搜索得到的网络结果

? 如果一个新安装的应用程序提供了某种搜索功能,它将会出现在搜索标签页中。

7、管理搜索结果的显示顺序

你可以使用系统设置对显示的搜索结果进行重新排序,禁用某些结果等操作。

在系统设置应用中访问搜索设置

打开系统设置,然后进入搜索选项卡。

设置中的搜索选项卡

重新排序搜索结果显示的顺序

打开搜索设置后,你可以看到列出了所有可用的搜索提供器。每一个项目的左侧有一个把手,右侧有三个点的菜单。

用于排列项目的按钮和把手

你可以直接拖拽左侧的把手来调整项目顺序,将其放到你希望的位置。

拖拽调整项目显示的顺序

或者,你也可以点击右侧三点菜单,然后选择“ 向上移动 Move Up ”或“ 向下移动 Move Down ”。

使用按钮上下移动

调整后的设置将会作为 GNOME shell 搜索结果新的显示顺序。

管理各个文件的搜索位置

通过搜索选项卡里的“ 搜索位置 Search Locations ”选项,你可以调整系统应用,如文件、照片、视频等的搜索位置。

现在,你可以开启或者关闭已有的搜索位置。或者点击添加按钮,添加新的位置。

添加或移除位置

从搜索中启用或禁用搜索提供器

如果你并未使用某些搜索提供器,你可以通过禁用未使用的搜索提供器在搜索界面释放一些空间。具体操作是,使用每个项目右侧的切换按钮关闭指定提供器。

启用 - 禁用开关

如果需要,你可以随时重新开启它们,只需切换相同的按钮至开启状态。

整体禁用搜索

你可以通过关闭 应用搜索 按钮来彻底禁用 GNOME Shell 中的应用内搜索。

在概览中禁用搜索

在这种情况下,只有应用程序可以进行搜索,搜索结果会被隐藏。

应用内搜索被禁用状态

额外技巧:扩展插件增强搜索效能

有一些 GNOME 扩展件可以使你的搜索更便捷、有效。

快速网络搜索

这是一个名为 “Quick Web Search” 的扩展,它会为 DuckDuckGo 提供一个搜索选项。每当我们在 GNOME shell 搜索中输入一些词汇时,DuckDuckGo 的图标就会出现。单击它,将在你的首选浏览器中打开搜索结果。

Shell 中的 DuckDuckGo 搜索

即使所有的浏览器实例都已关闭,这个功能也可以正常工作。此外,你可以通过扩展设置将搜索提供器更改为谷歌或其他选项。

获取 Quick Web Search 扩展

GNOME 模糊应用搜寻

此扩展为 GNOME 搜索提供了模糊应用搜寻结果。因此,即便你输错或拼错了某些名字,它都会尽力为你找到匹配的结果。

使用模糊搜索的 GNOME 搜索

获取 GNOME 模糊应用搜索

充分利用 GNOME

如你所见,你可能从未充分地利用过所有的 GNOME 搜索特性,或者可能未曾对其给予足够的关注。

? 期望你能喜欢这些技巧。欢迎在评论区留下你的建议。

(题图:MJ/81a823e0-ed00-4988-a0a8-47c88e4ed188)


via: https://itsfoss.com/gnome-search/

作者:Sreenath 选题:lujun9972 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

去年以 290 万美元成交的首条推文 NFT,现在几乎一文不值

据消息,2021 年 3 月 Twitter 创始人以 NFT 形式将他发布的第一条推文出售,最终以 1630 ETH 拍卖出售,相当于 290 万美元。4 月 6 日,新的拥有者以 14969 ETH,相当于 4800 万美元再次放出拍卖,但只有 7 位竞标者参与了拍卖,最高出价 0.09 ETH,相当于 277 美元。

老王点评:这可以给那些炒作图片的人泼一盆冷水了吧。

印度开发者创造了只搜索半条面包的搜索引擎

据消息,开发这个搜索引擎的开发者认为,一整条面包太多了,“我不想在 3 天内吃 20 片面包。要找到半条面包不应该这么难。”该服务只适用于印度的一些城市,因为它依赖于 Dunzo,这是印度的一个类似 Door-Dash 的服务。

老王点评:我觉得,可以更细分一些,搜索一片面包,毕竟粮食不易。

有 HR、绩效考核的勒索软件组织两年“狂赚” 27 亿美元

据消息,勒索组织 Conti 出现于 2020 年,大约有 350 名成员,他们在短短两年内共“赚取”了约 27 亿美元(约合 172 亿元)的加密货币。Conti 被美国联邦调查局列为了最猖獗的勒索软件组织之一,现在一系列内部文件的泄露让外界了解了其运作机制。Conti 的运营和组织方式就像是一家普通科技公司,具备明确的管理、财务和人力资源职能,以及层级汇报机制,并且还有专门的研发和业务开发部门。其月度最佳员工可以获得相当于一半工资的奖金,而对表现不佳的员工进行罚款。不过,并非所有员工都充分意识到自己是网络犯罪集团的一员。

老王点评:这真是勒索“正规军”了,估计没几个企业能扛得住这种贼盯。

你可能已经注意到,当你在 GNOME 菜单/活动区搜索某样东西时,它也会显示名称与搜索词相匹配的文件,以及已安装的应用。

Search in GNOME activities shows installed applications and matching files

这是个很方便的功能。如果你记得文件名,甚至是它的一部分,你可以很容易地搜索到它,只需按下 Super 键(Windows 键)并输入文件名就可以打开它。

但是,围绕这个搜索功能,有一些你可能不知道或从未关心过的小问题。

在这篇文章中,我将分享你如何控制 GNOME 搜索功能,从搜索选项中添加或隐藏文件夹,以及完全禁用它。

注意:这专门针对使用 GNOME 的发行版。请 确认你使用的是哪种桌面环境,确保是 GNOME。

文件搜索的默认位置

GNOME 的搜索功能使用了一个叫做 Tracker Miner FS 的工具。请不要被 “tracker” 和 “miner” 这样的术语吓到。它不是在监视你,也不是在你的系统上挖掘加密货币。它的基本功能是作为一个搜索引擎和数据库,为你提供即时搜索结果。

默认情况下,文件索引发生在元文件夹,如文档、音乐、图片和视频目录及其子目录。主页和下载文件夹中的文件也会被索引,但不包括其子目录中的文件。

Default locations for file search

如果你在你的主文件夹中创建了一些新的目录,这些文件将不会被索引。

然而,最近访问的文件也会被自动编入索引。如果你最近打开了一个文件,它将被添加到 “最近的文件” 中,并将出现在搜索结果中,而不管它在什么地方。

如果你还不知道的话,你可以在文件管理器中看到你最近访问的文件:

Accessing recent files in GNOME file manager

在搜索结果中添加一个文件夹的内容

假设你在你的主目录中为编码项目创建了一个文件夹。这些文件不会被索引,也不会出现在搜索结果中(除非你通过双击打开了一个文件,并且它被添加到最近的文件中)。

要在搜索结果中添加自定义文件夹中的文件,你可以将该文件夹添加到搜索位置。

通过在菜单/活动区搜索打开 “设置” 应用。

Search for settings application

从左侧边栏进入 “搜索” 选项,点击顶部的“搜索位置”选项。在弹出的窗口中,进入 “其他” 标签,点击 “+” 符号。它将打开文件浏览器,你可以添加你想要的文件夹。

Adding a custom folder content to search

如果你在刚刚添加的文件夹中搜索一个文件名进行测试,你现在应该在搜索结果中看到它。它应该是即时的,但如果不是,请尝试注销或重启系统。

从搜索结果中隐藏一个文件夹

如果你不希望某个特定文件夹的文件出现在搜索结果中,你可以隐藏它。

如果你不希望在搜索中出现图片、文档、视频等元文件夹的内容,你可以从搜索位置设置中禁用它。

Disable meta folders from the search

如果你只想让文档下的某个文件夹的内容不出现在搜索结果中,你只需要在该文件夹中创建一个名为 .nomedia 的新文件。你也可以将该文件命名为 .git、.trackerignore 或 .hg。

Hide specific folder from search results by creating file named .nomedia or .hg or .git

如果你在鼠标右键中没有看到创建新文件的选项,你必须做一些调整来增加 在右键上下文菜单中创建新文件选项。还要注意的是,任何名称中以 . 开头的文件都会被隐藏起来,不能被正常查看。要 切换显示隐藏文件,按 Ctrl+H 键。

这种隐藏可能不会立即生效,因为该文件可能已经被索引了。你可能必须注销或重启才能看到效果。

如果你手动访问一个文件,它将被添加到最近的文件中,并且会出现在搜索结果中,尽管文件夹中的文件被忽略了。

你可以从 “设置 -> 隐私 -> 文件历史 & 垃圾箱” 删除最近的文件历史或完全禁用它(如果你想的话)。不过我认为没有必要,所以在这里你自己决定吧。

Clear or disable file access history in GNOME

禁用所有文件的搜索结果

如果你不希望任何文件出现在搜索结果中,你可以在搜索设置中完全禁用对文件的搜索。

Disable search results for all files

你应该通过点击顶部的搜索切换按钮完全禁用搜索功能,它可能会干扰 GNOME 桌面环境的正常功能。

关于它的更多细节可以在 [项目主页] 中找到。

总结

这里的 讨论的是文件搜索。GNOME 桌面也可以在日历、字符映射和其他一些程序中进行搜索。你可以禁用或启用可用的搜索选项,但我们这篇不针对这些。

我希望你觉得这个快速提示对 定制你的 GNOME 体验 有帮助。如果你知道其他一些你想让别人知道的技巧,请在评论中与我们分享。


via: https://itsfoss.com/control-gnome-file-search/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

来学习下搜索文件中内容的基本操作,然后下载我们的备忘录作为 grep 和正则表达式的快速参考指南。

 title=

grep( 全局正则表达式打印 Global Regular Expression Print )是由 Ken Thompson 早在 1974 年开发的基本 Unix 命令之一。在计算领域,它无处不在,通常被用作为动词(“搜索一个文件中的内容”)。如果你的谈话对象有极客精神,那么它也能在真实生活场景中使用。(例如,“我会 grep 我的内存条来回想起那些信息。”)简而言之,grep 是一种用特定的字符模式来搜索文件中内容的方式。如果你感觉这听起来像是文字处理器或文本编辑器的现代 Find 功能,那么你就已经在计算行业感受到了 grep 的影响。

grep 绝不是被现代技术抛弃的远古命令,它的强大体现在两个方面:

  • grep 可以在终端操作数据流,因此你可以把它嵌入到复杂的处理中。你不仅可以在一个文本文件中查找文字,还可以提取文字后把它发给另一个命令。
  • grep 使用正则表达式来提供灵活的搜索能力。

虽然需要一些练习,但学习 grep 命令还是很容易的。本文会介绍一些我认为 grep 最有用的功能。

安装 grep

Linux 默认安装了 grep。

MacOS 默认安装了 BSD 版的 grep。BSD 版的 grep 跟 GNU 版有一点不一样,因此如果你想完全参照本文,那么请使用 Homebrew 或 MacPorts 安装 GNU 版的 grep。

基础的 grep

所有版本的 grep 基础语法都一样。入参是匹配模式和你需要搜索的文件。它会把匹配到的每一行输出到你的终端。

$ grep gnu gpl-3.0.txt
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
<http://www.gnu.org/licenses/>.
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

grep 命令默认大小写敏感,因此 “gnu”、“GNU”、“Gnu” 是三个不同的值。你可以使用 --ignore-case 选项来忽略大小写。

$ grep --ignore-case gnu gpl-3.0.txt
                    GNU GENERAL PUBLIC LICENSE
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
GNU General Public License for most of our software; it applies also to
[...16 more results...]
<http://www.gnu.org/licenses/>.
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

你也可以通过 --invert-match 选项来输出所有没有匹配到的行:

$ grep --invert-match \
--ignore-case gnu gpl-3.0.txt
                      Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
[...648 lines...]
Public License instead of this License.  But first, please read

管道

能搜索文件中的文本内容是很有用的,但是 POSIX 的真正强大之处是可以通过“管道”来连接多条命令。我发现我使用 grep 最好的方式是把它与其他工具如 cut、tr 或 curl 联合使用。

假如现在有一个文件,文件中每一行是我想要下载的技术论文。我可以打开文件手动点击每一个链接,然后点击火狐浏览器的选项把每一个文件保存到我的硬盘,但是需要点击多次且耗费很长时间。而我还可以搜索文件中的链接,用 --only-matching 选项只打印出匹配到的字符串。

$ grep --only-matching http\:\/\/.*pdf example.html
http://example.com/linux_whitepaper.pdf
http://example.com/bsd_whitepaper.pdf
http://example.com/important_security_topic.pdf

输出是一系列的 URL,每行一个。而这与 Bash 处理数据的方式完美契合,因此我不再把 URL 打印到终端,而是把它们通过管道传给 curl:

$ grep --only-matching http\:\/\/.*pdf \
example.html | curl --remote-name

这条命令可以下载每一个文件,然后以各自的远程文件名命名保存在我的硬盘上。

这个例子中我的搜索模式可能很晦涩。那是因为它用的是正则表达式,一种在大量文本中进行模糊搜索时非常有用的”通配符“语言。

正则表达式

没有人会觉得 正则表达式 regular expression (简称 “regex”)很简单。然而,我发现它的名声往往比它应得的要差。诚然,很多人在使用正则表达式时“过于炫耀聪明”,直到它变得难以阅读,大而全,以至于复杂得换行才好理解,但是你不必过度使用正则。这里简单介绍一下我使用正则表达式的方式。

首先,创建一个名为 example.txt 的文件,输入以下内容:

Albania
Algeria
Canada
0
1
3
11

最基础的元素是不起眼的 . 字符。它表示一个字符。

$ grep Can.da example.txt
Canada

模式 Can.da 能成功匹配到 Canada 是因为 . 字符表示任意一个字符。

可以使用下面这些符号来使 . 通配符表示多个字符:

  • ? 匹配前面的模式零次或一次
  • * 匹配前面的模式零次或多次
  • + 匹配前面的模式一次或多次
  • {4} 匹配前面的模式 4 次(或是你在括号中写的其他次数)

了解了这些知识后,你可以用你认为有意思的所有模式来在 example.txt 中做练习。可能有些会成功,有些不会成功。重要的是你要去分析结果,这样你才会知道原因。

例如,下面的命令匹配不到任何国家:

$ grep A.a example.txt

因为 . 字符只能匹配一个字符,除非你增加匹配次数。使用 * 字符,告诉 grep 匹配一个字符零次或者必要的任意多次直到单词末尾。因为你知道你要处理的内容,因此在本例中零次是没有必要的。在这个列表中一定没有单个字母的国家。因此,你可以用 + 来匹配一个字符至少一次且任意多次直到单词末尾:

$ grep A.+a example.txt
Albania
Algeria

你可以使用方括号来提供一系列的字母:

$ grep [A,C].+a example.txt
Albania
Algeria
Canada

也可以用来匹配数字。结果可能会震惊你:

$ grep [1-9] example.txt
1
3
11

看到 11 出现在搜索数字 1 到 9 的结果中,你惊讶吗?

如果把 13 加到搜索列表中,会出现什么结果呢?

这些数字之所以会被匹配到,是因为它们包含 1,而 1 在要匹配的数字中。

你可以发现,正则表达式有时会令人费解,但是通过体验和练习,你可以熟练掌握它,用它来提高你搜索数据的能力。

下载备忘录

grep 命令还有很多文章中没有列出的选项。有用来更好地展示匹配结果、列出文件、列出匹配到的行号、通过打印匹配到的行周围的内容来显示上下文的选项,等等。如果你在学习 grep,或者你经常使用它并且通过查阅它的帮助页面来查看选项,那么你可以下载我们的备忘录。这个备忘录使用短选项(例如,使用 -v,而不是 --invert-matching)来帮助你更好地熟悉 grep。它还有一部分正则表达式可以帮你记住用途最广的正则表达式代码。 现在就下载 grep 备忘录!


via: https://opensource.com/article/21/3/grep-cheat-sheet

作者:Seth Kenlon 选题:lujun9972 译者:lxbwolf 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出