巴什头和尾命令

227 阅读3分钟

在bash中,有许多类型的命令可以用来显示一个文件的内容。最常用的命令是'**cat'、'more'、'less'、'head'**和'tail'命令。要读取整个文件,可以使用'**cat'、'more'**和'less'命令。但是当需要读取文件的特定部分时,就需要使用'head'和'tail'命令来完成这一任务。

head"命令用于从头读取文件,"tail"命令用于从尾部读取文件。本教程介绍了如何使用 ""和 ""命令的不同选项来读取文件的特定部分。

你可以使用任何现有文件或创建任何新文件来测试'head'和'tail'命令的功能。创建两个名为products.txt和employee.txt的文本文件,内容如下,以显示'head'和'tail'命令的使用。

产品.txt

ID 类型 品牌 尺寸 价格
01HDD Samsung 1TB7002显示器DELL15"70 02 显示器DELL15"60
03 鼠标A4 不适用 0504键盘Atech正常05 04 键盘 Atech正常10
05 扫描仪HP 不适用$50
06 打印机 三星不适用 100美元
07 适配器 A4 不适用10美元
08 显示器 三星17英寸 80美元

雇员.txt

ID 姓名 部门 职位
S001 John Paul 销售人员市场营销人员
S002 Wellium Bob 销售人员
E003Jason 人力资源经理
E004 Jullie HR助理经理
E005 Janifer 人力资源程序员

头部命令的使用

默认情况下,**'head'命令会读取文件的前10行。如果你想从文件的开头读取多于或少于10行,那么你必须在'head'命令中使用'-n'**选项。

头部命令的语法

head [选项][文件名]...[文件名]

在'head'命令中使用选项是可选的,'head'命令可以应用于一个或多个文件。

头部命令选项

下面解释了不同的 "head "命令选项的用途。

选项目的
-n 或 -lines用来打印前n行。
-c或-bytes用于打印前n个字符或字节。
-q 或 -quiet用于打印一个或多个文件的内容,在输出中不提及文件名。
-v或-verbose用于打印一个或多个文件的内容,在输出中提及文件名。

Head命令的例子

下面的例子显示了 "head "命令的不同用法。

例子 - 1: 没有任何选项的head命令

products.txt文件有9行标题。因此,下面的命令将显示product.txt文件的所有行,因为'head'命令中没有使用任何选项。

$ headproducts.txt

输出:
执行上述命令后会出现以下输出。

例子-2:带有-n选项和正值的head命令

在下面的'head'命令中使用了带5的'-n'选项,在输出中打印product.txt文件的前五行。

$ head -n 5products.txt

输出:
执行上述命令后会出现以下输出。

例子-3:带有-n选项和负值的Head命令

在下面的'head'命令中,使用了带-7的'-n'选项,在省略最后7行后打印product.txt文件的内容。

$ head -n -7products.txt

输出。

执行上述命令后会出现以下输出。

例4:带有-c选项的Head命令

在下面的'head'命令中,使用了带有67的'-c'选项,在输出中打印products.txt文件的前67个字符。

$ head -c 67state.txt

输出:
执行上述命令后会出现以下输出。

例5:带有-q选项的head命令

下面的`head`命令带有-q选项和两个文件,将打印两个文件的所有内容,而不提及文件名。

$ head -qemployee.txt products.txt

输出:
执行上述命令后会出现以下输出。

例6:带有-v选项的head命令

下面的`head`命令带有-v选项和两个文件,将通过提及文件名来打印两个文件的所有内容。

$ head -vemployee.txt products.txt

输出:
执行上述命令后,将出现以下输出。

例子 - 7: 带有-n选项和多个文件的head命令

通过使用-n选项和`head`命令中的数字,可以打印一个或多个文件开头的特定行数。下面的命令将打印products.txtemployee.txt文件的前两行。

$ head -n 2products.txt employee.txt

输出:
执行上述命令后会出现以下输出。

使用tail命令

默认情况下,**"tail "**命令会读取文件的最后10行。如果你想从文件的结尾处读取多于或少于10行,那么你必须在'tail'命令中使用'-n'选项。

尾巴命令的语法

tail [选项][文件名]...[文件名]

像'head'命令一样,'tail'命令也适用于多个文件,使用选项对'tail'命令来说是可选的。

尾巴命令选项

不同的 "tail "命令选项的用途解释如下。

选项目的
-n或-lines用于打印最后的n个行数。
-c或-bytes用于打印最后的n个字符或字节。
-q 或 -quiet它的作用类似于`head`命令的-q选项。
-v 或 -verbose它的作用类似于`head`命令的-v选项。
-f 或 -follow它用于监视运行中的程序所写的日志条目。

例子-1:没有任何选项的Tail命令

employee.txt文件只有6行,少于10行。因此,下面的命令将显示employee.txt文件的全部内容。

$ tailemployee.txt

输出:
执行上述命令后会出现以下输出。

例子-2:带有-n选项和正值的tail命令

当你想从文件的结尾处读取特定的行时,你必须使用带正值的'-n'选项。下面的命令将显示employee.txt文件的最后两行。

$ tail -n 2employee.txt

输出:
执行上述命令后会出现以下输出。

例子-3:带有-n和负值的尾巴命令

如果你想从开头省略特定的行,那么你必须在'tail'命令中使用带负值的'-n'选项。下面的命令将显示employee.txt文件的内容,省略了开头的3行。

$ tail -n -3employee.txt

输出:
执行上述命令后会出现以下输出。

例子-4:带有-c选项的尾巴命令

在下面的'tail'命令中,使用了带有65的'-c'选项,在输出中打印出employee.txt文件的最后65个字符。

$ tail -c -65employee.txt

输出。

执行上述命令后会出现以下输出。

例子-5:带有-f选项的尾巴命令

在下面的'tail'命令中,使用了'-f'和'-n'选项以及history.log的路径,在输出中打印了history.log文件的3行。

$ tail -f -n 3 /var/log/apt/history.log

输出:
执行上述命令后会出现以下输出。

例子 - 6: 带有-n选项和多个文件的tail命令

下面的命令将显示product.txtemployee.txt文件的最后3行。

$ tail -n 3products.txt employee.txt

输出:
执行上述命令后,将出现以下输出。

例子-5:同时使用头和尾命令

如果你想从任何文件的中间部分读取内容,那么只有**'头**'或''命令不能解决这个问题。你必须同时使用''和''命令来解决这个问题。下面的命令将读取product.txt文件的第2至6行。首先,**'head'命令将检索前6行,省略最后5行的负值,'tail'**命令将从'head'命令的输出中检索最后5行。

$ head -n -5products.txt| tail -n 5

输出:
执行上述命令后会出现以下输出。

总结

我希望,在练习了上述例子之后,bash用户能够正确地应用'head'和'tail'命令。