与Unix中的head和tail命令相关

时间:2014-06-30 03:40:36

标签: linux unix

我知道输出head -ntail -n会提供什么。

是否有head +nhead +2 filename)或tail +ntail +2 filename)等命令?

如果是的话,有人可以对此有所了解吗?

3 个答案:

答案 0 :(得分:1)

tail支持正偏移和负偏移,但head不支持。

从文件末尾的第10行开始输出:

tail -10 filename

从文件开头的第10行开始:

tail +10 filename

答案 1 :(得分:1)

Single Unix Specification Version 2(1997)states the following for tail

  

在非过时形式中,如果既未指定 -c 也未 -n ,则假定 -n 10

     

在过时版本中,以“ - ”或“+”开头的参数可以用作单个选项。带有指定为后缀的字母c的参数± number 等同于 -c ± number ;带后缀的±数字相当于 -c ± number * 512; ±数字,字母l指定为后缀,或者没有b,c和l作为后缀,等同于 -n ± number 。如果未在这些表单中指定 number ,则将使用10。指定为后缀的字母f等同于指定 -f 选项。如果使用 [数字] c [f] 形式且未指定数字或f后缀,则将其解释为< strong> -c 10 选项。

换句话说,每组中的以下命令是等效的:

tail -2 file
tail -n 2 file

tail +2 file
tail -n +2

tail -2c file
tail -c 2 file

tail +3lf file
tail -f -n +3 file

请注意,除非使用“+”,否则给定的数字表示“输出最后N行”。如果使用“+”,则表示“输出从行N开始的行”。例如,在包含40行的文件中,tail +2(或等效tail -n +2)将输出行2..40,而使用-2或仅使用2将输出行39..40。

2001年单一Unix规范removed the obsolescent form completely的下一个版本,因此没有以“+”字符开头的“选项”。

答案 2 :(得分:0)

我认为滚边是您正在寻找的:https://en.wikipedia.org/wiki/Pipeline_(Unix)

使用您提供的第一个示例:

head +2 filename | head +n

我相信你想要的,但请注意我还没有测试过它