显示以给定字符串开头的行
命令语法格式
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 发生错误
使用示例
比如你想知道某个单词的拼写,但你只知道前半部分,可以执行如下命令:
diction
diction’s
dictionaries
dictionary
dictionary’s
命令look默认会到/usr/share/dict/words文件中进行查找。
又或者你想知道.c文件中包含的头文件,可以执行如下命令:
上述命令会输出所有的头文件。
相关手册
grep(1), sort(1)
参考文献
- man 1 look, Version 9.0.12
- “look” Command Usage Examples in Linux
更新日志
- 08/07/2018 创建文章