如何在linux上使用look命令

Linux look命令遍历一个文件并列出以特定单词或短语开头的所有行。但是小心!它在不同的Linux发行版上表现不同。本教程将向您展示如何使用它。...

Linux look命令遍历一个文件并列出以特定单词或短语开头的所有行。但是小心!它在不同的Linux发行版上表现不同。本教程将向您展示如何使用它。

ubuntu的look命令的行为不同

对于一个简单但有用的命令,look在我研究这篇文章的时候确实给了我一个很好的解释。有两个问题:兼容性和文档。

本文是使用Ubuntu、Fedora和Manjaro检查的。look与这些发行版捆绑在一起,非常棒。问题是这三种情况下的行为都不一样。Ubuntu的版本非常不同。根据Ubuntu手册页,行为应该是相同的。

我终于明白了。look传统上使用二进制搜索,而ubuntulook使用线性搜索。在线Ubuntu手册页上的Bionic Beaver(18.04)、Co**ic cutlefish(18.10)和Disco Dingo(19.04)都说Ubuntu版本使用了二进制搜索,但事实并非如此。

如果我们看一下本地的Ubuntu手册页,就会清楚地看到他们的外观使用了线性搜索。有一个命令行选项强制它使用二进制搜索。其他发行版中的两个版本都没有选择搜索方法的选项。

man look

如何在linux上使用look命令

向下滚动浏览手册页,我们会看到一节描述了使用线性搜索而不是二进制搜索的look的这个版本。

如何在linux上使用look命令

这个故事的寓意是先查看当地的手册页。

线性搜索与二进制搜索

二进制搜索方法比线性搜索更快更有效。处理大文件使这一点非常明显。二进制搜索的缺点是必须对文件进行排序。如果不想对文件进行排序,请对其副本进行排序,然后将其与look一起使用。

我们将在本文的其他地方对此进行演示。请注意,在Fedora、Manjaro和我所期望的大多数Linux世界中,您需要创建一个文件的排序副本并使用它。

安装单词

look可以处理您选择的任何文本文件,也可以处理本地词典文件“words”

在Manjaro上,您需要安装“words”文件。使用此命令:

sudo pacman -Syu words

如何在linux上使用look命令

使用look

在本文中,我们将使用爱德华·李尔的诗歌《大杂烩》的文本文件

让我们用这个命令来看看它的内容:

less the-jumblies.txt

如何在linux上使用look命令

这是诗的第一部分。请注意,我们使用的是Ubuntu,因此该文件仍然未排序。对于Fedora和Manjaro,我们将使用文件的排序副本,这将在本文后面介绍。

如何在linux上使用look命令

如果我们寻找以“They”开头的行,我们就会发现Jumblies做了些什么。

look They the-jumblies.txt

如何在linux上使用look命令

look通过列出以下行来响应:

如何在linux上使用look命令

忽略字符大小写

要使look忽略大小写之间的差异,请使用-f(忽略大小写)选项。我们又用了“they”作为搜索词,但这次是小写的。

look -f they the-jumblies.txt

如何在linux上使用look命令

这一次,结果包括一个额外的行。

如何在linux上使用look命令

在最后一组结果中,以“THEY”开头的那行没有出现,因为它是大写的,与我们的搜索词“THEY”不匹配

忽略case允许look将其包含在结果中。

对已排序的文件使用look

如果您的Linux发行版的look版本遵循使用二进制搜索的传统行为,那么您必须对文件进行排序,或者使用已排序的文件副本。

让我们重复搜索“他们”的命令,但这次是在Manjaro上。

007Ys3FFgy1gp68oeg9sdj30hy025t8n

如您所见,没有返回任何结果。但我们知道诗中有几行是以“他们”开头的

我们把文件整理一下。如果要在look中使用-f(忽略大小写)或-d(仅限字母数字字符和空格)选项,则在对文件排序时必须使用它们。

-o(output)选项允许您指定排序行应添加到的文件的名称。在这个例子中,它是“排序.txt.”

sort -f -d the-jumblies.txt -o sorted.txt

如何在linux上使用look命令

让我们看看排序.txt文件,然后使用-f和-d选项。

如何在linux上使用look命令

现在,我们得到了预期的结果。

只考虑空格和字母数字

要使look忽略任何不是字母数字字符或空格的内容,请使用-d(字母数字)选项。

让我们看看有没有以“哦”开头的词

look -f oh the-jumblies.txt

如何在linux上使用look命令

look不返回任何结果。

让我们再试一次,告诉look忽略除字母数字字符和空格以外的任何内容。这意味着字符和符号,如标点符号,将被忽略。

look -f -d oh the-jumblies.txt

如何在linux上使用look命令

这一次,我们得到了一个结果。我们以前没有找到这一行,因为引号和感叹号混淆了搜索。

如何在linux上使用look命令

指定终止字符

您可以告诉look使用特定字符作为终止字符。通常,空格和行尾用作终止字符。

t(终止字符)选项允许我们指定要使用的字符。在这个例子中,我们将使用撇号字符。我们需要用反斜杠引用它,这样look就知道我们没有打开字符串。

我们引用搜索词也是因为它包含空格。我们在找两个词。

look -f -t \' "they call" the-jumblies.txt

如何在linux上使用look命令

结果与搜索项匹配,以我们用作终止字符的撇号结尾。

如何在linux上使用look命令

使用look without a file

如果没有在命令行中提供文件名,look将使用file这个词。

命令:

007Ys3FFgy1gp68ojimhnj30hy01lwec

给出以下结果:

如何在linux上使用look命令

这些都是文件中以“圆”开头的单词

别再看了

就这些了。

一旦您知道在不同的Linux发行版中有不同的行为,并且您已经了解了您的版本是使用二进制搜索还是线性搜索,这就非常容易了。

  • 发表于 2021-04-03 08:14
  • 阅读 ( 201 )
  • 分类:互联网

你可能感兴趣的文章

如何在linux上安装和使用powershell

... 在本文中,我将向您展示如何在Linux上安装、运行和使用PowerShell! ...

  • 发布于 2021-03-16 02:34
  • 阅读 ( 303 )

如何在android和termux上使用linux命令行

...许您在Android设备上安装诚实善良的Linux应用程序。下面是如何使用Termux应用程序。 ...

  • 发布于 2021-03-18 07:26
  • 阅读 ( 367 )

如何在windows10上获得linux bash shell

... 如何在windows10上安装linux bash shell ...

  • 发布于 2021-03-21 11:48
  • 阅读 ( 282 )

linux下如何重命名文件

要在Linux中重命名文件吗?如果您知道如何在Windows、macOS或Chrome操作系统中完成这项工作,那么您就知道如何在这里完成这项工作。在大多数版本的Linux上,您只需右键单击一个文件并选择Rename选项。 ...

  • 发布于 2021-03-22 02:48
  • 阅读 ( 269 )

如何在ubuntu中安装和更改主题

... 如何在ubuntu中安装主题 ...

  • 发布于 2021-03-24 21:26
  • 阅读 ( 367 )

如何在linux上使用groupadd管理用户组

... 相关:如何在Linux中更改密码 ...

  • 发布于 2021-03-26 17:15
  • 阅读 ( 183 )

如何在linux中添加用户

想在Linux系统上添加用户但不知道如何添加?在Linux上使用命令行界面管理用户无疑是一项复杂的工作。而对于初学者来说,即使添加新用户也是一场噩梦。 ...

  • 发布于 2021-03-26 23:29
  • 阅读 ( 331 )

如何在Windows10上导出和导入linux系统

...已配置的系统,与其他计算机共享,或者只保存备份。 如何工作 导入和导出功能是在2019年5月的Windows10版本1903更新中添加的。如果尚未安装,则无法使用这些命令行选项。 您只需要为Windows wsl命令提供两个新选项:--export和--i...

  • 发布于 2021-04-03 10:24
  • 阅读 ( 186 )

windows10的新bashshell所能做的一切

...些指南汇总到一个大列表中。 windows上linux入门 相关:如何在windows10上安装和使用Linux Bash Shell 您可以在任何版本的windows10(包括windows10home)上安装Linux环境和bashshell。但是,它确实需要64位版本的Windows10。您只需启用Windows Subs...

  • 发布于 2021-04-06 14:44
  • 阅读 ( 261 )

如何在windows10的ubuntubashshell中更改用户帐户

...改这些凭据。 用户帐户在linux环境中的工作方式 相关:如何在windows10上安装和使用Linux Bash Shell 当您通过在安装后启动新的Linux发行版来设置它时,系统会要求您为bashshell创建一个用户帐户。Windows将其称为“UNIX用户帐户”。因...

  • 发布于 2021-04-06 15:47
  • 阅读 ( 181 )
3513471167s
3513471167s

0 篇文章

相关推荐