查找和 grep 组的脚本
Script to find and grep the group
我正在努力编写 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)\
我添加了以下规范:
- 可以通过查找以 space
开头的行找到组
- 群名无spaces
- 当用户名多次出现时,只看第一个
- 搜索比赛前提到的最后一组
首先 select 所有组和所有匹配行。
从该组中查找第一场比赛之前的最后一行,那一定是组。
usr=usrname4
grep -Eo "^[^ ]+|,${usr}," file | grep -B1 ",${usr}," | head -1
我正在努力编写 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)\
我添加了以下规范:
- 可以通过查找以 space 开头的行找到组
- 群名无spaces
- 当用户名多次出现时,只看第一个
- 搜索比赛前提到的最后一组
首先 select 所有组和所有匹配行。
从该组中查找第一场比赛之前的最后一行,那一定是组。
usr=usrname4
grep -Eo "^[^ ]+|,${usr}," file | grep -B1 ",${usr}," | head -1