当键/值是某些值时,如何仅打印某些文本块? script.awk 正在运行:输出:

因此,如果我有这样的事情,我只想在“帐户已禁用:错误”时捕获或打印出帐户信息。

$ ipa user-find

---------------
2 users matched
---------------
  User login: jpeterson
  First name: john
  Last name: peterson
  Home directory: /home/jpeterson
  Login shell: /bin/sh
  UID: 855800007
  GID: 855800007
  account disabled: False

  User login: jsmith
  First name: john
  Last name: smith
  Home directory: /home/jsmith
  Login shell: /bin/sh
  UID: 855800004
  GID: 855800004
  account disabled: True
----------------------------
Number of entries returned 2
----------------------------

预期输出为:

  User login: jpeterson
  First name: john
  Last name: peterson
  Home directory: /home/jpeterson
  Login shell: /bin/sh
  UID: 855800007
  GID: 855800007
  account disabled: False

有多个具有相同键或属性的帐户。

也许我可以为此使用一个数组,只是不确定。除了尝试mapfile之外,我还没有尝试任何其他方法。当键“ account disabled”的值等于“ False”时,将文件放入数组并打印出元素。但是我还没有。

rxdrd 回答:当键/值是某些值时,如何仅打印某些文本块? script.awk 正在运行:输出:

我认为您正在对此进行倒退。 ipa应该有一种查询数据库的方法。我自己从未使用过它,但在以下示例中发现了a manpage

ipa user-find foo
     

搜索在uid,名字,姓氏,全名等中带有“ foo”的所有用户。具有uid“ foobar”的用户将符合搜索条件。

ipa user-find foo --first bar
     

与前面的示例相同,只是这次用户的名字必须完全是“ bar”。 uid为“ foobar”且名字为“ bar”的用户将符合搜索条件。

要获取更多详细信息,请尝试ipa help user-find

您想要的命令可能看起来像其中之一:

ipa user-find --disabled False  # Update: this one worked for OP
ipa user-find --account-disabled False
ipa user-find --enabled True

也就是说,如果您想走文字处理路线,you could use awk

,

这是一个简单的<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="image-magnifier-container magnify"> <div class="zoom"> <span class="s s-plus"><span class="hide">zoom-in</span></span> <span class="s s-minus"><span class="hide">zoom-out</span></span> </div> </div>脚本:

script.awk

awk

正在运行:

length() == 1 || /^--*/ {  # if section boundery marker
    if (found == 1) print rec; # print current rec only on found marker
    found = 0; # reset found marker
    rec = ""; # reset rec
    next; # read next line
}
/Account disabled: True/ {found = 1;} # if on disabled account,set found marker
{rec = rec $0 ORS} # accumulate current line into rec

输出:

awk -f script.awk input.txt
本文链接:https://www.f2er.com/3131676.html

大家都在问