获取第 m 行和第 n 行之间的内容

mrd*_*iri 3 bash terminal sed

我有一个大文件,但我需要其中的一部分,即第m(1000) 行和第n(2000)行之间的行。

我怎么才能得到它?(并将其放入一个新的较小的文件中,或在屏幕上打印)

who*_*oan 5

您可以使用以下方法轻松完成sed

sed -n 'm,n p' bigfile > smaller_file
Run Code Online (Sandbox Code Playgroud)

假设 m 和 n 是数字

在这里,您正在使用:

Sed 命令可以不带地址,在这种情况下,该命令将对所有输入行执行;具有一个地址,在这种情况下,仅对与该地址匹配的输入行执行该命令;或者有两个地址,在这种情况下,将对与从第一个地址开始并继续到第二个地址的行的包含范围匹配的所有输入行执行该命令。关于地址范围需要注意的三件事:语法是addr1,addr2(即地址之间用逗号分隔);即使 addr2 选择了较早的行,addr1 匹配的行也将始终被接受;如果 addr2 是正则表达式,则不会针对 addr1 匹配的行进行测试。

  • 选项:-n

    -n, --quiet, --silent
    抑制模式空间的自动打印

  • 命令:p

    打印当前模式空间。


jim*_*ara 5

42 到 96 行之间:

sed -n '42,96p'  oldfile > newfile
Run Code Online (Sandbox Code Playgroud)