标签 搜索 下的文章

使用 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,或者用 batless 在读取某个文件等,

你可以通过在 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 版有一点不一样,因此如果你想完全参照本文,那么请使用 HomebrewMacPorts 安装 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 最好的方式是把它与其他工具如 cuttrcurl 联合使用。

假如现在有一个文件,文件中每一行是我想要下载的技术论文。我可以打开文件手动点击每一个链接,然后点击火狐浏览器的选项把每一个文件保存到我的硬盘,但是需要点击多次且耗费很长时间。而我还可以搜索文件中的链接,用 --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中国 荣誉推出