sed处理大文件时的问题
有一个比较大的文本文件,要截取其中包含0155000-01的行的后65行。
但是当文件里包含0155000-01的行太多时,程序就跑不动了(我用的是sed -n )
sed -n 1,`expr 1 + 65`p mm3.txt
sed -n 67,`expr 67 + 65`p mm3.txt
sed -n 133,`expr 133 + 65`p mm3.txt
sed -n 199,`expr 199 + 65`p mm3.txt
sed -n 265,`expr 265 + 65`p mm3.txt
sed -n 331,`expr 331 + 65`p mm3.txt
sed -n 397,`expr 397 + 65`p mm3.txt
sed -n 463,`expr 463 + 65`p mm3.txt
sed -n 529,`expr 529 + 65`p mm3.txt
sed -n 595,`expr 595 + 65`p mm3.txt
sed -n 661,`expr 661 + 65`p mm3.txt
sed -n 727,`expr 727 + 65`p mm3.txt
。。。。。。
。。。。。。
请问有没有更好的办法啊
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
perl 版有个类似的帖子可以借鉴下
$flag=0;
while(<>)
{
if(/0155000-01/ || $flag < 65)
{
print $_, "n";
$flag++
}
elsif ($flag == 65)
{
$flag = 0;
}
}
gnu grep
grep -A 65 '0155000-01' mm3.txt
gnu sed
sed -n '/'0155000-01/,+65p' mm3.txt
[ 本帖最后由 ly5066113 于 2008-7-7 15:20 编辑 ]