【发布时间】:2015-07-18 20:03:01
【问题描述】:
很抱歉再次编辑问题。我发现我之前没有问清楚我的问题。
昨天问了a question 今天又发现了一个问题/.\
这是我的文件:
Time 00:00:01
kkk
lll
ccc
aaa: 88
...
Time 00:00:03
jjj
kkk
lll
ccc
aaa: 89
ooo
bbb
aaa
kkk
lll
ccc
aaa: 90
...
Time 00:00:04
kkk
lll
...
这是我想要的输出:
Time 00:00:01
kkk
lll
ccc
aaa: 88
Time 00:00:03
kkk
lll
ccc
aaa: 89
Time 00:00:03
kkk
lll
ccc
aaa: 90
上次我在寻找一条线和另一条线。这次我要找的是多行的模式:
kkk
lll
ccc
aaa: /any thing here/
还有一行
Time /any thing here/
从我昨天问的问题,我试过了
awk '/Time/{a=$0}/kkk\nlll\nccc\naaa/{print a"\n"$0}' file
和
perl -ane '$t=$_ if /Time/; print $t,$_ if /kkk\nlll\nccc\naaa/' test2
和
pcregrep.exe -M 'kkk.*(\n|.)lll.*(\n|.)ccc.*(\n|.)*aaa' test2
来自this
但它们不工作或输出不是我想要的。
我发现了一个像 this 这样的线程,它正在谈论状态机,但它很复杂,因为我有几行要匹配。
有什么可以轻松解决这个问题的建议吗?
【问题讨论】:
-
您正在尝试输出以
kkk开头并以aaa结尾的行集以及紧接着它们的Time行? -
不仅如此,
kkk、lll、ccc和aaa必须同时匹配,顺序相同。Time行会立即继续它们。