我正在努力编写bash脚本或python脚本以从文件中查找字符串。
例如,我需要搜索usrname4
,如果找到了,则需要获取其组。在这种情况下,它是group1
。由于文件格式比较棘手,因此我需要一些提示。
文件内容采用以下格式。
group1 (-,usrname1,abc.co.uk)\
(-,usrname1,xyz.co.uk)\
(-,usrname2,abc.co.uk)\
(-,usrname2,xyz.co.uk)\
(-,usrname3,abc.co.uk)\
(-,usrname3,xyz.co.uk)\
(-,usrname4,abc.co.uk)\
(-,usrname4,xyz.co.uk)\
(-,usrname5,abc.co.uk)\
(-,usrname5,xyz.co.uk)\
(-,usrname6,abc.co.uk)\
(-,usrname6,xyz.co.uk)\
(-,usrname7,abc.co.uk)\
(-,usrname7,xyz.co.uk)\
group2 (-,usrname8,abc.co.uk)\
(-,usrname8,xyz.co.uk)\
(-,usrname9,abc.co.uk)\
(-,usrname9,xyz.co.uk)\
(-,usrname10,abc.co.uk)\
(-,usrname10,xyz.co.uk)\
(-,usrname11,abc.co.uk)\
(-,usrname11,xyz.co.uk)\
(-,usrname12,abc.co.uk)\
(-,usrname12,xyz.co.uk)\
(-,usrname13,abc.co.uk)\
(-,usrname13,xyz.co.uk)\
(-,usrname14,abc.co.uk)\
(-,usrname14,xyz.co.uk)\
我添加了以下规格:
首先选择所有组和所有匹配的行。从该组中查找第一个匹配项之前的最后一行,该行必须是该组。
usr=usrname4
grep -Eo "^[^ ]+|,${usr}," file | grep -B1 ",${usr}," | head -1