如何在unix中显示文件第n行的所有行

use*_*438 29 unix linux bash sh

我想显示从第n行开始的所有行.比如说,打印文件的第三行和所有以下行直到文件结束.那是否有命令?

Nik*_*ohl 54

你可以用尾巴

从联机帮助页中摘录:

   -n, --lines=K
         output the last K lines, instead of the last 10; or use -n +K to
         output lines starting with the Kth
Run Code Online (Sandbox Code Playgroud)

例如

tail -n +10 file 
Run Code Online (Sandbox Code Playgroud)

输出从第10行开始的文件内容


Ala*_*ins 11

sed -n '3,$p' file
Run Code Online (Sandbox Code Playgroud)

这只是填充文本,因为stackoverflow不支持短命令行.

  • 不用用垃圾填满答案,您可以解释语法的含义。 (2认同)

Jua*_*doy 10

从第5行显示:

awk 'NR>4' file
Run Code Online (Sandbox Code Playgroud)


Bet*_*eta 5

打印,但删除第1行到第2行:

sed '1,2d' filename
Run Code Online (Sandbox Code Playgroud)


Joh*_*n B 5

你可以awk像这样使用:

awk 'BEGIN{n=5}NR<=n{next}1' file
Run Code Online (Sandbox Code Playgroud)
  • BEGIN{n=5}- 在文件处理开始之前,设置n为要跳过的行数(5).
  • NR<=n{next}- 如果行号小于或等于,则跳过处理n.
  • 1- print其他一切的简写.

  • 最短的将是'awk'NR> 5'file`,但由于已经提出过,我想补充说'awk`就像`sed`支持范围运算符一样.所以,`awk'NR == 5,0'file`也可以. (2认同)