包含给定字符串的搜索块

时间:2013-09-19 13:46:15

标签: search reverse forward

所有

我有一个文本文件,比如sample.txt。此文件包含许多以[和]分别开头和结尾的块。 (请参阅附图)。

现在,给定一个字符串,比如说“finance3”,是否可以使用反向reg-ex(或类似的东西)来找到“保持”字符串的行(即块)范围。

enter image description here示例中(请参见附图),给定的字符串是“finance3”,它位于第18行。必须返回的块是:17-24。

这样做的一种方法是,获取字符串所在的行号并向后移动,grep表示包含'['的行号。再次,从存在字符串的行开始,然后前进每行,当遇到']'时停在该行。

但是,使用正则表达式有更好的方法吗?

提前感谢您的时间。

拉​​维。

1 个答案:

答案 0 :(得分:0)

你可以告诉awk记录是由]分隔的,然后打印记录,如果它与你的搜索字符串匹配:

awk 'BEGIN { RS = "]" } { if (match($0, "finance3")) { print $0 RS } }' sample.txt
相关问题