小编Nul*_*ptr的帖子

只有从特定行 X(带有模式)到其他特定行 Y(带有模式)的猫

从“ cat line x 到 line y on a large file ”的一个小问题:

我有一个巨大的文件(2-3 GB)。我只想从具有“foo:”的行到具有“goo:”的行进行猫/打印。假设“foo:”和“goo:”在一个文件中只出现一次;"foo:" 继续 "goo:"。

到目前为止,这是我的方法:

  • 首先,找到带有“foo:”和“goo:”的行: grep -nr "foo:" bigfile
  • 退货123456: foo: hello world!654321: goo: good bye!
  • 一旦我知道这些开始和结束行号,以及差异(654321-123456=530865),我就可以做选择性猫:
  • tail -n+123456 bigfile | head -n 530865

我的问题是如何用表达式(例如,grep ...)有效地替换行号常量?

我可以编写一个简单的 Python 脚本,但只想使用组合命令来实现它。

grep sed awk tail head

3
推荐指数
2
解决办法
2397
查看次数

标签 统计

awk ×1

grep ×1

head ×1

sed ×1

tail ×1