【问题标题】:Unix open file from line X or first 100 lines after Z foundUnix 从第 X 行或 Z 找到后的前 100 行打开文件
【发布时间】:2014-07-17 09:01:08
【问题描述】:

我有一个 2GB 的文本文件,我想在找到某个字符串后每 100 行读取一次 示例:

string: 'epicvar (string) ="5"'

string 在第 5000 行找到,所以我想从 5000 到 5100 读取文件 然后在第 15000 行也找到了 string,所以我想从 15000 到 15100 读取文件 等等。

使用的系统是HP-UX B.11.31 U

【问题讨论】:

  • 您能更新指示您的操作系统的标签吗?看起来您使用的是 Solaris 或 AIX
  • 我建议编译和安装GNU grep(如果您没有root访问权限,可能使用./configure --prefix=$HOME/soft/)你使用grep -A100,如已删除的answer by Fedorqui中所建议的那样
  • 公司服务器 :D 无法按照我的意愿进行这些安装...不幸的是

标签: unix grep cat hp-ux


【解决方案1】:

这可能对你有用(未经测试),如果你理解 ll2p 意味着 last line to print它应该很容易阅读......

awk '/pattern/ {ll2p = NR+100}
        NR < ll2p {print}
        NR==ll2p {ll2p=0} ' file

【讨论】:

  • 我试过了,但它没有输出任何东西......也许可以用模式中的“”来做? awk '/epicvar (string) ="5"/ {ll2p = NR+100} NR
  • 尝试使用awk '/epicvar.*string.*5/...
猜你喜欢
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
相关资源
最近更新 更多