Linux 命令行工具提供了足够丰富的命令用于管理服务器上的文件和目录。其中最常用的命令之一是 head,它允许我们只查看文件的前几行内容,这在查看超大文件(文件大小为几个 GB 以上)时尤其有用。在这篇博文中,我们将详细讨论该命令的使用说明、注意事项、技巧窍门等,以充分利用该命令。

使用说明

head 命令用于显示一个文件的前几行。要使用该命令,只需输入 head 和你想查看的文件名即可。例如,要查看一个名为 example.log 的文件的前10行,你可以输入以下命令:

1
head -n 10 example.log

其中,-n 选项用于指定要查看的行数。如果不指定数字,它将默认为 10 行。还可以使用 - 号来表示除了文件最后多少行外输出所有行内容。例如,要查看文件的所有行,但不包括最后的 11 行,可以输入以下命令:

1
head -n -11 example.log

注意事项

在使用 head 命令时,有两个地方需要注意:

首先,注意不要使用 > 操作符意外覆盖原来的文件。例如,执行以下命令会导致 example.log 文件被其前 10 行的内容覆盖,相当于 example.log 文件只保留了前 10 行内容,其他所有内容被抹去。

1
head -n 10 example.log > example.log

其次,要注意 head 不会以任何方式修改文件。如果要编辑该文件,则需要使用文本编辑器或其他命令行工具。

技巧窍门

以下这些提示和技巧,可帮助我们最大限度地使用 head 命令:

  • 查看多个文件时,使用 -q 选项隐藏文件名;
  • 查看多个文件时,使用 -v 选项显示文件名;
  • 使用 -c 选项查看文件的前几个字节而不是前几行;
  • 使用 -f 选项可以在添加新行时实时查看文件的前几行。

示例

在使用 head 命令之前,我们先创建两个演示的日志文件。本示例是在 /mnt/e/linux-commands/head 目录下,创建两个文件 a.logb.log,文件行数都为 15 行,内容如下:

a.log

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
a_1
a_2
a_3
a_4
a_5
a_6
a_7
a_8
a_9
a_10
a_11
a_12
a_13
a_14
a_15

b.log

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
b_1
b_2
b_3
b_4
b_5
b_6
b_7
b_8
b_9
b_10
b_11
b_12
b_13
b_14
b_15

我们可以使用 Linux 命令 echo 和 for 循环来生成这两个日志文件,如生成 a.log 文件的命令如下所示:

1
2
3
4
for v in {1..15}
do
echo a_$v >> a.log
done

接下来,开始执行 head 命令来查看不同参数下的执行效果。

1、直接使用 head 命令,不带其他选项,则默认输出文件前 10 行:

1
2
3
4
5
6
7
8
9
10
11
head a.log
a_1
a_2
a_3
a_4
a_5
a_6
a_7
a_8
a_9
a_10

2、输出文件 a.log 前 5 行:

1
2
3
4
5
6
head -n 5 a.log
a_1
a_2
a_3
a_4
a_5

3、将文件 a.log 前三行内容输出到 c.log 文件:

1
head -n 3 a.log >> c.log

查看文件 c.log 内容:

1
2
3
4
head cat c.log
a_1
a_2
a_3

4、使用 -v 选项,输出文件 a.log 前三行,并输出文件名称:

1
2
3
4
5
head -v -n 3 a.log
==> a.log <==
a_1
a_2
a_3

-v 选项在处理多个文件的时候可以区分内容是由哪个文件输出的,例如,分别输出文件 a.logb.log 前 3 行:

1
2
3
4
5
6
7
8
9
10
head -v -n 3 a.log b.log
==> a.log <==
a_1
a_2
a_3

==> b.log <==
b_1
b_2
b_3

5、如果在处理多个文件时不想输出文件名称,则可以使用 -q 选项,例如:

1
2
3
4
5
6
7
head -q -n 3 a.log b.log
a_1
a_2
a_3
b_1
b_2
b_3

6、如果想输出文件除了最后 n 行外的其他所有行,这时 -n 选项的参数可以传负数。如以下示例输出文件 a.log 除了最后 11 行之外的其他所有行:

1
2
3
4
5
head -n -11 a.log
a_1
a_2
a_3
a_4

小结

总之,head 命令是快速查看文件前几行的强大工具。为最大限度使用此命令,简化在 Linux 命令行上的文件管理任务,本文详细讨论该命令的使用说明、注意事项、技巧窍门等,同时还通过列举一些使用示例来加深对该命令理解。

(END)