Linux 匹配后打印多行

Linux 匹配后打印多行,linux,awk,Linux,Awk,我想用第二行打印inavg7ey用户详细信息(如果还有其他行,我也需要)。。有人能帮我吗?我试过这个: $ cat /etc/sudoers inavg7ey evl0000332,evl0000333,evl0000234,evl0000999,evs99234456,\\ evl3300987,evl3344567,evlser999,eul000123,evs3300123,evs3300124,\\ (root,jboss,superss) NOPASSWD:ALL inav

我想用第二行打印inavg7ey用户详细信息(如果还有其他行,我也需要)。。有人能帮我吗?我试过这个:

$ cat /etc/sudoers    
inavg7ey evl0000332,evl0000333,evl0000234,evl0000999,evs99234456,\\
 evl3300987,evl3344567,evlser999,eul000123,evs3300123,evs3300124,\\
(root,jboss,superss) NOPASSWD:ALL

inavgmcn evl0000332,evl0000333,evl0000234,evl0000999=(all,wasadmin,\\
jboss,superss) NOPASSWD:ALL
但它只显示了这一个:

在AVG7EY evl0000332、evl0000333、evl0000234、evl0000999、evs99234456中,您可以使用:

awk'/inavg7ey/{c=N}c&&c--'/etc/sudoers

N-这里是匹配后的行数,包括匹配

还有一个解决方案:

awk'/navg7ey/,/^$/'/etc/sudoers

awk
-在您的文件中,可以在两种模式之间进行grep,
navg7ey
——这是grep的第一个模式

^$
-这是grep到的第二种模式(
^$
-表示空行)

您应该使用grep来实现这一点。这将在匹配后打印2行

awk '/inavg7ey/' /etc/sudoers
--编辑--

如果先删除换行符,一切都会变得更容易。这将在一行上打印每个用户。只需使用grep就可以获得正确的用户

  grep -A2 inavg7ey /etc/sudoers 


使用
awk
解析支持延续行的文件需要知道延续行的外观,并自己处理(以可靠的方式)。您也可以随时使用其中一种解决方案。
awk'/inavg7ey/&&/\\$/{print;getline;print}
谢谢Champ,现在它也显示了匹配的模式,如果有5行以上添加了\\符号,请您帮助我。。如何打印所有行示例inavg7ey ramdas、evl0000332、evl0003322、evs2233999、\\EVL330999、evs3300142、EVL22232、evh334490、evl009o9o、\\\=(根)NOPASSWD:all
grep-A1 inavg7e7/etc/sudoers
…是的,它正在工作。。太好了,我不能指望你们都能这么快反应。。。祝您有个美好的一天。。。再次感谢一个小问题,但在这里,当我执行上述命令时,它会显示文件中包含其他名称的所有行,例如awk'/inavg7ey/{c=9}c&&c--'列表[root@dasari9脚本]#vi列表[root@dasari9脚本]#awk'/inavg7ey/{c=9}c&&c--“列出inavg7ey-ramdas、evl0000332、evl0003322、evs223999、evl330999、evs330099、evs330142、,EVL22232,evh334490,evl009o9o,\\=(根)NOPASSWD:ALL-inavgmcn evs300132,EVL333333,3vsfjhasad,\\evl121212312312312hh,asdasdasd,\\\=(根)NOPASSWD:ALL-inavg7ey-user我只想看到details@Ramdas这就是为什么向我们展示几行示例输入非常重要,而不仅仅是要提取的文件段。选择你想要的行总是很简单的,但是不选择你不想要的行要困难得多。在这一点上,您还没有向我们展示任何能够让我们找到更健壮的解决方案或帮助您调试当前问题的东西。编辑您的问题以显示更有用的输入/输出-在注释中提供信息是没有用的,因为它无法格式化以匹配您的真实文件。我强烈怀疑你们真正想要的只是在“\\\”后面加上几行。@Ramdas你们能把这些行添加到问题中吗,因为它作为评论是绝对不可读的谢谢你们的评论,在这里,我的查询的某些部分正在清除,但我正在查找的确切内容是,当我试图使用该命令获取用户信息时,会按预期为该用户显示ok。。这里对于其他用户来说有3到4行以上。。对于每一个不是很好的扩展数字和获取信息的用户,我想说的是,我想知道有多少用户拥有sudo访问权限,以及他们通过使用awk、grep实用工具审计root用户和其他应用程序用户可以访问多少个框
cat /etc/sudoers | sed  ':a;N;$!ba;s/\\\\\n//g'
 cat /etc/sudoers | sed  ':a;N;$!ba;s/\\\\\n//g' | grep inavg7ey