用于查找并grep该组的脚本

问题描述 投票:-1回答: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)\
python bash scripting ksh nis
1个回答
0
投票

我添加了以下规格:

  • 可以通过查找以空格开头的行来找到一个组
  • 组名没有空格
  • 如果用户名多次出现,则仅查看第一个]
  • 搜索比赛前提到的最后一组
  • 首先选择所有组和所有匹配的行。从该组中查找第一个匹配项之前的最后一行,该行必须是该组。

usr=usrname4
grep -Eo "^[^ ]+|,${usr}," file | grep -B1 ",${usr}," | head -1
© www.soinside.com 2019 - 2024. All rights reserved.