从行号向上和向下取 1 行

从行号向上和向下取 1 行

我正在尝试显示文件中的几行。我所知道的是这样的:

head -n48964204 xag

但这将显示上述的行号。我想获取行号的记录48964203,48964204,and 48964205.

我也尝试过这个:sed -n 48964204p xag 但这只显示文件的一行。

答案1

你可以sed像这样指定第一行和最后一行

sed -n '48964203,48964205p' xag

因为您知道行号,所以请指定前一个号码和后续号码!

解释

  • -n保持安静,直到我们要求你打印某物
  • 2,7我想要的第一行和最后一行以及其间的所有内容。这是一个地址。
  • p打印这些行

答案2

使用awk

awk 'NR==48964203,NR==48964205' xag

它将返回第 48964203 行到第 48964205 行,并包含这两行。使用NR我们可以指定输入记录,因此awk只为我们打印指定的行。

答案3

Perl 方法:

perl -lne 'print if $.>=48964203 and $.<=48964205' input.txt

关键思想是打印与逻辑表达式相对应的行号 - 行号大于或等于 48964203,行号小于或等于 48964205。

相关内容