我有一个包含数百万行的文本文件。我想在一些X到Y行之间提取文本。我如何才能有效地实现这一目标。
这是最好的方法。
非常感谢。
答案 0 :(得分:2)
你可以试试这个:
sed -n x,yp yourfile > newfilename
只需将x和y替换为您要从中提取内容的行数。
答案 1 :(得分:2)
如果您的文件非常庞大,我会这样做:(假设x,y是起始行和结束行号)
sed -n 'x,yp;yq' file
或
awk 'NR==x{p=1}NR==y+1{exit}p' file
上述命令将在到达行y
后停止进一步处理。它可以为您节省一些时间。
答案 2 :(得分:1)
@rahul的回答是正确的。 或者,您可以组合使用头部和尾部:
tail -n +x input.txt | head -n y > output.txt
这次,tail -n + x打印出从第x行开始的整个文件,head -n y打印出第一行y + 1行。它以相同的方式重定向到output.txt。
答案 3 :(得分:0)
你可以使用头部和尾部。
head -n Y yourfile | tail -n (Y-X+1)
你应该用数字替换(Y-X + 1)。