linux - 一场比赛后打印多行

标签 linux awk

$ 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

我也想用第二行打印 inavg7ey 用户详细信息(如果还有更多行,我也想要它们).. 任何人都可以帮助我吗?我试过这个:

awk '/inavg7ey/' /etc/sudoers

但它只显示了这个:

inavg7ey evl0000332,evl0000333,evl0000234,evl0000999,evs99234456,\

最佳答案

你应该为此使用 grep。这将在匹配后打印 2 行

  grep -A2 inavg7ey /etc/sudoers 

--编辑--

如果您先删除换行符,一切都会变得更容易。这将在一行上打印每个用户。十简单使用grep获取正确的用户

cat /etc/sudoers | sed  ':a;N;$!ba;s/\\\\\n//g'

 cat /etc/sudoers | sed  ':a;N;$!ba;s/\\\\\n//g' | grep inavg7ey

关于linux - 一场比赛后打印多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29946647/

相关文章:

linux - 如何在制作 GCC 4.9.1 时解决 "no usable dependency style found"错误

arrays - awk 表格格式化解决方案

awk - 使用 AWK 查找最大值

linux - 如何使用 bash 脚本在日期/时间和另一个日期/时间之间提取日志

awk - 比较不同文件的多列,如果匹配则附加文件中的列

linux - 将 tr 的结果作为第二个参数传递给 awk

linux - 检查挂起后恢复系统的Linux内核中断

正则表达式 sed 问题

linux - 如何在不遗漏字符/字符串的情况下将整个代码回显到 .bashrc?

linux - 在 shell 中将 .txt 转换为 .csv