$ 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,\
答案 0 :(得分:0)
你应该使用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
答案 1 :(得分:-1)
您可以使用:
awk&#39; / inavg7ey / {c = N} c&amp;&amp; c - &#39;的/ etc / sudoers的
N - here is number of line after match including match
另一个解决方案:
awk&#39; / navg7ey /,/ ^ $ /&#39; / etc / sudoers
awk
- 可以在文件中的2种模式之间进行grep,
navg7ey
- 这是第一个从中获取的模式;
^$
- 它的第二种模式(^$
- 意味着空行)