31

此命令显示文件的第二行:

cat myfile | head -2 | tail -1

我的文件包含以下数据:

hello
mark
this is the head line
this is the first line 
this is the second line 
this is the last line

上面的命令将数据打印为:mark

但我无法理解这一点,因为 head -2 用于打印前两行,tail -1 打印最后一行,但是第二行是如何打印的!!!???

4

3 回答 3

31

您还可以使用“sed”或“awk”打印特定行:

例子:

sed -n '2p' myfile

PS:至于“我的'head|tail'有什么问题”命令-shelltel 是正确的。

于 2012-12-12T04:43:14.410 回答
18

tail 显示头输出的最后一行,头输出的最后一行是文件的第二行。

头部输出(输入到尾部):

hello
mark

尾部输出:

mark
于 2012-12-12T04:40:10.583 回答
1

如果您将操作分解为单独的命令,那么它的工作方式将变得显而易见。

head -2 创建一个包含两行的文件。

linux> head -2 /tmp/x > /tmp/xx
linux> cat /tmp/xx  
hello
mark

tail -1 打印出文件的最后一行。

linux> tail -1 /tmp/xx
mark
于 2012-12-12T04:49:08.980 回答