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

4
我有一个大文件,但我只需要其中的一部分,即 m 行(第1000行)到 n 行(第2000行)之间的内容。
我该如何获取它们?(可以将其存储到一个新的小文件中或在屏幕上打印出来)

1
https://dev59.com/CXVD5IYBdhLWcg3wHnwX - cnicutar
@sputnick:目前还没有任何进展。 - mrdaliri
当我们有一个完全相同的副本时,将其标记为重复是合适的。 - legends2k
4个回答

10

第42到96行:

sed -n '42,96p'  oldfile > newfile

5

你可以轻松使用sed完成:

sed -n 'm,n p' bigfile > smaller_file

假设m和n是数字。
在这里,您正在使用:
- sed的地址,通过行号指定范围
Sed命令可以不带地址,此时该命令将对所有输入行执行;也可以带一个地址,此时该命令将仅对与该地址匹配的输入行执行;或者带有两个地址,此时该命令将对从第一个地址开始并延续到第二个地址的包含行范围内匹配的所有输入行执行。关于地址范围需要注意三件事:语法为addr1,addr2(即地址之间用逗号分隔);无论addr2选择了哪一行,都将接受addr1匹配的行;如果addr2是正则表达式,则不会针对addr1匹配的行进行测试。
  • -n 选项

    -n, --quiet, --silent
    抑制自动打印匹配空间

  • p 命令

    打印当前的匹配空间。


4

如果文件很大,最好在到达end行后立即退出文件浏览。您可以使用以下awk命令:

awk '{print} /end/{exit}' file.txt

awk -v m=10 -v n=15 'NR>n{exit} NR>=m' file > file_chunk

1
使用`head`和`tail`。
head -$start file.txt|tail -$(($end - $start))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接