如何在x到y行之间提取文件的内容

时间:2015-04-10 14:01:37

标签: unix

我有一个包含数百万行的文本文件。我想在一些X到Y行之间提取文本。我如何才能有效地实现这一目标。

这是最好的方法。

非常感谢。

4 个答案:

答案 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)。