有条件的grep / ack搜索?

时间:2016-09-29 11:51:55

标签: grep ack

我的意思是,我想搜索" thing1",然后我想搜索" thing2"基于" thing1"的位置。我希望在结果中按顺序显示它们中的两个。

例如。我发现" thing1"在第100行。我想再搜索第一个" thing2"发生在" thing1"之前。然后我想按顺序显示这两个" thing2"然后" thing1"。我想为" thing1"的每个实例做这个。我找到了。

这样做的原因是我想搜索某些我知道将在列表中的字符串(python),我也想知道列表的名称。所以我认为我可以搜索字符串,然后还显示第一个" = ["在字符串之前发生的符号。

所以如果文件有:

$.validate({form : '#LoginForm'});

并创建一个查找my_list = [ 'item1', 'item2', 'item3', ] my_other_list = [ 'item4', 'item5', 'item3', ] 的搜索,然后回头查找之前的'item3'

然后输出应该是(不包括grep和ack将放的行号):

'= ['

1 个答案:

答案 0 :(得分:0)

我想你想要这个:

awk '/=/{thing2=$0} /item3/{print thing2;print $0,"\n"}' YourFile

因此,每当您看到=时,您都会将该行记为thing2。当您看到item3时,您打印的是您看到的最后一个thing2和当前行。

示例输出

my_list = [
    'item3', 

my_other_list = [
    'item3',