如何打印与具有特定图案的另一条线最接近的图案的线?
我想找到最接近特定模式的模式。例如我想打印“yyyy:”下的“bbb=”(它是 bbb= 到 yyyy 最接近的行)。这是第 8 行。行号和顺序可能会改变,所以最好不要使用行号。
root# vi a
"a" 15 行
1 ## xxxx:
2 aaa=3
3 bbb=4
4 ccc=2
5 ddd=1
6 ## yyyy:
7 aaa=1
8 bbb=0
9 ccc=3
10 ddd=3
11 ## zzzz:
12 aaa=1
13 bbb=1
14 ccc=1
15 ddd=1
您有使用 awk 或 grep 来实现此目的的想法吗?
I want to find a pattern which is nearest to a specific pattern. Such as I want to print "bbb=" which is under the "yyyy:" (it is the closest line with bbb= to yyyy). It is line 8. line numbers and the order might be changed so it is better not to use line numbers.
root# vi a
"a" 15 lines
1 ## xxxx:
2 aaa=3
3 bbb=4
4 ccc=2
5 ddd=1
6 ## yyyy:
7 aaa=1
8 bbb=0
9 ccc=3
10 ddd=3
11 ## zzzz:
12 aaa=1
13 bbb=1
14 ccc=1
15 ddd=1
Do you have an idea using awk or grep for this purpose?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
像这样的东西吗?
或者上面的一行也可以匹配 if 吗?在这种情况下,也许:
考虑到可能没有上一个或下一个条目:
Something like this?
Or can a line above also match if? In that case, perhaps:
Taking into account that there might not be a previous or next entry:
使用
grep
既快速又肮脏:Quick and dirty using
grep
: