【发布时间】:2012-07-07 04:58:27
【问题描述】:
我想在水平分隔符之间获取多行文本,并忽略分隔符前后的任何其他内容。
一个例子是:-
Some text here before any delimiter
----------
Line 1
Line 2
Line 3
Line 4
----------
Line 1
Line 2
Line 3
Line 4
----------
Some text here after last delimiter
我想得到
Line 1
Line 2
Line 3
Line 4
Line 1
Line 2
Line 3
Line 4
如何使用 awk / sed 和正则表达式来做到这一点?谢谢。
【问题讨论】:
-
你的意思肯定不是
sed '/^-*$/d' -
你能澄清一下“分隔符之前和之后”吗?
-
删除到第一个分隔符,从最后一个分隔符到末尾,并将中间的任何分隔符变成随机数量的换行符?
-
@RayToal 我已经编辑了我的示例。基本上我在输出文件的开头和结尾都有我不需要的文本。我只需要分隔符之间的输出。谢谢。
-
我明白了,但这不能在纯面向行的 awk/sed 样式脚本中完成,因为您不知道何时到达 last 分隔符,直到你已经阅读了整个文件。你能把整个文件塞进内存吗?因为如果是这样的话,用 Python 或 Ruby 编写是微不足道的。