所有
我有一个文本文件,比如sample.txt。此文件包含许多以[和]分别开头和结尾的块。 (请参阅附图)。
现在,给定一个字符串,比如说“finance3”,是否可以使用反向reg-ex(或类似的东西)来找到“保持”字符串的行(即块)范围。
在示例中(请参见附图),给定的字符串是“finance3”,它位于第18行。必须返回的块是:17-24。
这样做的一种方法是,获取字符串所在的行号并向后移动,grep表示包含'['的行号。再次,从存在字符串的行开始,然后前进每行,当遇到']'时停在该行。
但是,使用正则表达式有更好的方法吗?
提前感谢您的时间。
拉维。
答案 0 :(得分:0)
你可以告诉awk记录是由]分隔的,然后打印记录,如果它与你的搜索字符串匹配:
awk 'BEGIN { RS = "]" } { if (match($0, "finance3")) { print $0 RS } }' sample.txt