「look(1)」-

显示以给定字符串开头的行

命令语法格式

look [-bdf] [-t termchar] string [file …]

命令描述

命令look显示文件中包含字符串string作为前缀的所有行。

如果未指定file,则使用文件/usr/share/dict/words,仅比较字母和数字字符,并忽略字母字符的大小写。

命令支持的选项及含义

支持的选项如下:

-b
在给定的单词列表上,使用二进制搜索。 如果使用-f选项忽略大小写,或使用-d忽略非字母数字字符,则必须以相同方式对文件进行排序。

请注意,如果没有给出文件名,这些选项是默认选项。 有关排序文件的更多信息,请参阅sort(1)。

-d
字典字符集和顺序,即仅比较字母和数字字符。

-f
忽略字母字符的大小写。

-t termchar
指定字符串终止字符,即仅比较字符串中包含第一次出现的termchar的字符。

注意事项

不会根据当前区域设置的整理顺序来比较行。必须在LC_COLLATE设置为“C”的情况下对输入文件进行排序。

原始手册页指出:当指定-d选项时,制表符和空白字符参与比较。这是不正确的,当前的手册页与历史实现相匹配。

命令look默认使用线性搜索,而不是二进制搜索,这是大多数其他实现默认使用的。

我始终不明白为什么要对文件进行排序。我也不是特别清楚这个命令的意图。

相关环境变量

环境变量LANG, LC_ALL, LC_CTYPE影响look的执行。具体的影响在environ(7)描述。

相关文件

/usr/share/dict/words
字典文件。

退出状态

0 找到和显示一个或多个行

1 没有找到行

>1 发生错误

使用示例

比如你想知道某个单词的拼写,但你只知道前半部分,可以执行如下命令:

# look dicti

diction

diction’s

dictionaries

dictionary

dictionary’s

命令look默认会到/usr/share/dict/words文件中进行查找。

又或者你想知道.c文件中包含的头文件,可以执行如下命令:

# look “#include” test.c

上述命令会输出所有的头文件。

相关手册

grep(1), sort(1)

参考文献

更新日志

  • 08/07/2018 创建文章