sed处理大文件时的问题

发布于 2022-08-08 13:06:35 字数 641 浏览 6 评论 2

有一个比较大的文本文件,要截取其中包含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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你与清晨阳光 2022-08-11 04:02:11

perl 版有个类似的帖子可以借鉴下
$flag=0;
while(<>)
{
   if(/0155000-01/ || $flag < 65)
  {
       print $_, "n";
       $flag++
  }  
   elsif ($flag == 65)
   {
       $flag = 0;
   }

}

-残月青衣踏尘吟 2022-08-09 17:36:20

gnu grep

grep -A 65 '0155000-01' mm3.txt

gnu sed

sed -n '/'0155000-01/,+65p' mm3.txt

[ 本帖最后由 ly5066113 于 2008-7-7 15:20 编辑 ]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文