我有一个大文件,但我需要其中的一部分,即第
m
(1000) 行和第 n
(2000) 行之间的行。
我怎样才能得到它? (并将其放入新的较小文件中,或在屏幕上打印)
42
和 96
之间的线:
sed -n '42,96p' oldfile > newfile
sed
:
sed -n 'm,n p' bigfile > smaller_file
假设 m 和 n 是数字
在这里,您正在使用:
Sed 命令可以不带地址,在这种情况下,该命令将对所有输入行执行;具有一个地址,在这种情况下,仅对与该地址匹配的输入行执行该命令; 或者有两个地址,在这种情况下,将对所有与从第一个地址开始一直到第二个地址的行的包含范围相匹配的输入行执行该命令。 关于地址范围需要注意的三件事:语法是 addr1 ,addr2(即地址之间用逗号分隔);即使 addr2 选择了较早的行,addr1 匹配的行也将始终被接受;如果 addr2 是正则表达式,则不会针对 addr1 匹配的行进行测试。
如果文件很大,最好在到达end
行后立即
退出文件浏览。你可以使用这个awk:
awk -v m=10 -v n=15 'NR>n{exit} NR>=m' file > file_chunk
使用
head
和 tail
head -$start file.txt|tail -$(($end - $start))