# 查看文件

显示或查找文件里符合条件的字符串。

# CAT 命令

cat 命令可以用来显示文件中的内容。

# 命令格式

cat【选项】 【文件名】

# 常用选项介绍

选项 描述
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

# 实例

textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

cat -n textfile1 > textfile2

cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:

# OUTFILE 指输出的镜像文件名
cat /dev/fd0 > OUTFILE

# MORE

类似 cat,不过会以一页一页的形式显示,更方便使用者逐页阅读。

最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,按 q 退出。

另外,按 v 调用 vi 编辑器,而且还有搜寻字串的功能。

# 语法

more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

# 常用参数

选项 描述
-num 一次显示 num
+num 从第 num 行开始显示
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
+/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示

# 实例

从第 20 行开始显示 testfile 之文档内容,一次显示 30 行。

more +20 -30 testfile

# LESS

more 仅能向前移动,却不能向后移动。使用 less 可以随意浏览文件,并且在查看之前不会加载整个文件。

# 语法

less [参数] 文件

# 常用参数

选项 描述
-N 显示每行的行号
-m 显示类似 more 命令的百分比
-s 显示连续空行为一行
-i 忽略搜索时的大小写
-g 只标志最后搜索的关键词
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件

# 常用操作

选项 描述
/ 字符串 向下搜索"字符串"的功能
? 字符串 向上搜索"字符串"的功能
n 重复前一个搜索(与 / 或 ? 有关)
N 反向重复前一个搜索(与 / 或 ? 有关)
回车键 滚动一行
y 向前滚动一行
d 向后翻半页
b 向上翻一页
空格键 向下翻一页
Q 退出 less 命令

# 其他命令

选项 描述
v 使用配置的编辑器编辑当前文件
&pattern 仅显示匹配模式的行,而不是整个文件
ma 使用 a 标记文本的当前位置
'a 导航到标记 a

# 实例

查看 log2019.log 文件。

less log2019.log

# GREP

用于查找文件里符合条件的字符串。

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。

若不指定任何文件名称,或是所给予的文件名为 "-",则 grep 指令会从标准输入设备读取数据。

# 语法

grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

# 常用参数

名称 描述
-i 或 --ignore-case 忽略字符大小写的差别
-c 或 --count 计算符合样式的列数
-x --line-regexp 只显示全列符合的列
-n 或 --line-number 在显示符合样式的那一行之前,标示出该行的列数编号
-r 或 --recursive 此参数的效果和指定 "-d recurse" 参数相同
-v 或 --revert-match 显示不包含匹配文本的所有行

# 实例

在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行的内容。

grep test *file

# 参考资料