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

对于一个简单但有用的命令,当我研究本文时,看起来肯定给了我解决方法。 有两个问题:兼容性和文档。

本文是使用Ubuntu,Fedora和Manjaro进行检查的。look与这些发行版捆绑在一起,很棒。 问题在于这三个行为都不相同。 Ubuntu版本是非常不同的。 根据Ubuntu手册页,行为应相同。

我最终想通了。 look传统上使用二进制搜索,而Ubuntu look使用线性搜索。 针对Bionic Beaver(18.04),Cosmic Cuttlefish(18.10)和Disco Dingo(19.04)的在线Ubuntu手册页都说,Ubuntu版本使用二进制搜索,事实并非如此。

如果我们查看本地的Ubuntu手册页,就会清楚地看到它们的外观使用线性搜索。 有一个命令行选项可以强制它使用二进制搜索。 其他发行版中的两个版本均未提供在搜索方法之间进行选择的选项。

男人看

在手册页中向下滚动,我们看到使用线性搜索而不是二进制搜索描述此版本外观的部分。

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

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

在本文的其他地方很好地演示这一点。 请注意,在Fedora,Manjaro上,我希望在Linux世界的大多数其他地方,您需要创建文件的排序副本并进行处理。

look可以与您选择的任何文本文件一起使用,也可以与本地词典文件中的单词一起使用。

在Manjaro上,您需要安装Word文件。 使用以下命令:

须藤pacman -Syu词

对于本文,请使用Edward Lear诗作The Jumblies的文本文件很好地工作。

让我们用以下命令查看其内容:

少了the-jumblies.txt

这是诗的第一部分。 请注意,它们使用的是Ubuntu,因此该文件保持未排序状态。 对于Fedora和Manjaro,wed处理文件的排序副本,本文稍后将对此进行详细介绍。

如果我们寻找以“他们”一词开头的行,那么就会发现Jumblies所做的一些事情。

看他们the-jumblies.txt

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

要使外观忽略大写和小写之间的差异,请使用-f(忽略大小写)选项。 我们再次将它们用作搜索词,但这一次,将其小写。

看-f他们the-jumblies.txt

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

在最后一组结果中缺少以THEY开头的行,因为该行全部大写且与我们的搜索词“他们”不匹配。

忽略大小写允许外观将其包括在结果中。

如果您的Linux发行版的外观符合使用二进制搜索的传统行为,则必须对文件进行排序或使用文件的排序副本。

让我们重复命令搜索它们,但这一次是在Manjaro上。

如您所见,没有结果返回。 但是我们知道这首诗中有以“他们”一词开头的台词。

让我们对文件进行排序后的副本。 如果要在外观上使用-f(忽略大小写)或-d(仅字母数字字符和空格)选项,则在对文件进行排序时必须使用它们。

-o(输出)选项使您可以指定应将已排序行添加到的文件的名称。 在此示例中,其为sorted.txt。

-o(输出)选项使您可以指定应将已排序行添加到的文件的名称。 在此示例中,其为sorted.txt。

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

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

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

让我们看看是否有任何开头的单词,哦。

看-f哦the-jumblies.txt

外观未返回任何结果。

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

看-f -d哦the-jumblies.txt

这次,我们得到了结果。 我们之前找不到这行是因为引号和感叹号混淆了搜索。

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

-t(终止字符)选项允许我们指定要使用的字符。 在此示例中,将使用撇号字符。 我们需要用反斜杠将其引用,以使您知道未打开字符串。

还引用了搜索词,因为它包含空格。 正在搜索两个词。

看起来-f -t“他们打电话” the-jumblies.txt

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

如果您未在命令行上提供文件名,则使用“文件”一词。

命令:

给出以下结果:

这些是文件中所有以单词circle开头的单词。

这就是所有要看的东西。

一旦您知道不同Linux发行版之间存在不同的行为,并且已经确定您的版本是使用二进制搜索还是线性搜索,便非常容易。

Linux中look命令,如何在Linux上使用look命令 | MOS86相关推荐

  1. tail在linux中的含义,如何在Linux中使用Tail命令

    tail命令是linux中一个很实用的应用命令,该命令可以显示一个或多个文件或管道数据的最后一部分.tail命令最常见的用途之一是监视和分析随时间变化的日志和其他文件,通常与grep等其他工具结合使用 ...

  2. linux中安装pip_如何在Linux中安装PIP

    linux中安装pip In this tutorial, we'll go over the steps to install pip in Linux. The pip command allow ...

  3. 如何运行linux中的vi,如何在linux中vi使用方法

    vi 的工作模式 Vi 在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标.删除文字. 复制或粘贴文字等.这些按键均是普通的字符,例如 l 是向右移动光标,相当于向右箭头键,k ...

  4. linux中kvm配置文件,如何在linux中通过kvm安装虚拟机

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 在centOS中通过kvm安装虚拟机 环境搭建 虚拟机安装 按照常规步骤安装即可,唯一需要注意的点是需要在cpu选项处, ...

  5. centos sudo不能运行_如何在 Linux 中配置 sudo 访问权限 | Linux 中国

    Linux 系统中 root 用户拥有 Linux 中全部控制权力.Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为.-- Magesh Maruthamuthu Lin ...

  6. linux卸载先驱的命令是,【单选题】在Linux中,若要在同一行书写多条命令,命令之间应使用符号()分隔A. 转义字符\\ B. 分号; C. , D. 空格...

    [单选题]在Linux中,若要在同一行书写多条命令,命令之间应使用符号()分隔 A. 转义字符\\ B. 分号; C. , D. 空格 更多相关问题 [单选] 以下不属于野兽派的代表人物() [单选] ...

  7. linux查看图像大小_如何在Linux上调整一批图像的大小?

    linux查看图像大小 Resizing images on Linux with gThumb is easy. However, I have a batch of images inside a ...

  8. linux 备份mysql并上传_实现Linux中Mysql数据库自动备份并上传到远程FTP服务器

    这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到 ...

  9. 19. linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解

    linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解 文章目录 Linux权限位 读写执行 三种权限真正含义和作用 权限对文件的作用 权限对目录的作用 示例 chmod 使用数 ...

  10. Linux中文件写保护,Linux_在Linux下创建写保护的文件的教程,假如你想对Linux中的一些重要 - phpStudy...

    在Linux下创建写保护的文件的教程 假如你想对Linux中的一些重要文件做写保护,这样它们就不能被删除或者被篡改成之前的版本或者其他东西,或者在其他情况下,你可能想避免某些配置文件被软件自动修改.使 ...

最新文章

  1. LeetCode刷题宝典 V1.0 PDF下载
  2. C#.NET 添加图片水印
  3. 【循序渐进学Python】7.面向对象的核心——类型(上)
  4. Struts2的OGNL
  5. 数据库存储引擎学习总结
  6. J2EE 字符 字节 编码知识概念
  7. YbtOJ#20072-[NOIP2020模拟赛B组Day6]相似子串【根号分治】
  8. ssh 免密码设置失败原因总结
  9. ALGORITHMS
  10. 安卓桌面整理app_升级到 iOS 13,你还会删除 APP 和整理桌面了吗?
  11. 论文简述 | PL-VINS:具有点和线特征的实时单目视觉惯性SLAM
  12. 动软代码生成器v2.78Mysql备注生成完美修复dll
  13. CSS字体样式设置、CSS文本样式设置
  14. Vins-Fusion运行kitti,euroc和tum数据集并使用evo评估
  15. addition过程 sgnb_5G-NSA接入流程分析及问题定位四步法
  16. 给移动硬盘安装PE系统
  17. 线性代数中解方程组的加减消元和求特征向量的加减消元的区别
  18. 计算机二级word海报体,2016年计算机二级《MSOffice》全真模拟试题
  19. 一起来云赏月把!three.js实现vr赏月!
  20. [RK3568 Android11] 开发之调试RK809 codec音频-MIC

热门文章

  1. rm 空间不释放_rm删除文件之后,空间就被释放了吗?
  2. 计算机基础16秋在线作业,北大16秋《计算机基础与应用-第二组》在线作业.doc
  3. 加载dict_Pytorch模型resume training,加载模型基础上继续训练
  4. CUDA error: an illegal memory access was encountered
  5. python 矩形补正方形
  6. Hyperface笔记
  7. server2016 查看图片 预览图片
  8. ping 一会通一会不通
  9. js 读取flask后台变量
  10. pycharm2017设置注释字体颜色