Linux look 命令 - 快速查找指定前缀开头的文本行
look 命令是 Linux / Unix /FreeBSD 系统中的一个用于快速查找以指定前缀开头的文本行的工具。它利用二分查找算法能够在已排序的文件中快速的匹配到查找的内容。
[!IMPORTANT]
用于查找的文件必须是已经排序的,可以使用
sort命令排序文件,如:LC_ALL=C sort input.txt -o output.txt;排序中文文件时一定要使用LC_ALL=C,使文件按照字节值排序。
look 命令基本语法结构
如下给出 look 命令语法结构的基本形式:
look [OPTIONS] [STRING] [FILE]
语法结构解释说明:
[OPTIONS]:控制搜索行为的选项STRING:要搜索的行前缀字符串,必须提供FILE:要搜索的目标文件,未提供时使用默认使用系统字典/usr/share/dict/words
look 命令使用示例
如下给出一些 look 命令的基本使用示例,好帮助你掌握 look 命令的基本用法。
在默认字典中搜索前缀单词
当不指定用于搜索的目标前缀时,在默认的系统字典 /usr/share/dict/words:
look tele
解释说明:在默认的系统字典 /usr/share/dict/words 查找以 "tele" 开头的单词。
指定文件中搜索前缀行
本实例中使用的示例文件的内容为:
李四 三年级
王五 二年级
张三 五年级
排序 name.txt 文件,生成排序后的 sorted-name.txt 文件:
LC_ALL=C sort name.txt -o sorted-name.txt
排序后的文件内容为:
张三 五年级
李四 三年级
王五 二年级
指定目标文件查找已 张 开头的行:
look "张" sorted-name.txt
输出内容为:
张三 五年级
搜索时忽略大小写
使用 -f 选项在搜索时忽略大小写:
look -f "ERROR" myfile.txt
指定自定义分隔符
使用 -t 选项指定匹配时使用字段分隔符:
look -t ',' "Smith" myfile.csv
命令选项详解
如下给出 look 命令选项的详细解释说明:
| 选项 | 说明 | 可运行的系统 |
|---|---|---|
-a, --alternative | 使用备用字典 | Linux |
-d, --alphanum | 只比较字母和数字字符 | 所有系统 |
-f, --ignore-case | 忽略字符的大小写差异 | 所有系统 |
-t, --terminator=CHAR | 设置字符串的终止符 | 所有系统 |
-c, --count | 显示匹配到的总行数的计数 | FreeBSD |
-h, --help | 显示帮助信息 | Linux |
-V, --version | 显示版本信息 | Linux |
结语
look 命令是 Linux / Unix /FreeBSD 系统中的一个用于快速查找以指定前缀开头的文本行的工具。在本文中介绍的 look 命令的基本语法形式,并给出了 look 命令的详细使用示例,同时给出了 look 命令的所有选项的详细解释说明。