【问题标题】:Removing array entries from lastlog command bash从 lastlog 命令 bash 中删除数组条目
【发布时间】:2022-01-20 09:40:02
【问题描述】:

我正在一个脚本中运行一个命令,该脚本将用户名保存在一个数组中,我想知道是否有一个简单的解决方案可以在运行 lastlog 命令期间删除这些用户名。

我在想这样的事情:

lastlog | grep -v "Never logged in" | grep -v ${excluded_users} | awk '{print $1,":",$5,$6,$9 }'

如果一切正常,请告诉我。

否则我愿意接受不同的建议和/或解决方案。

提前谢谢你。

【问题讨论】:

    标签: arrays linux bash grep


    【解决方案1】:

    为了扩展您的想法,您可以将用户列表放入一个文件并执行... | grep -vwFf excluded_users.txt | ....

    也许更强大的删除用户的方法是在您的 awk 命令中执行此操作:

    awk '$1 ~! /userA|userB|userC/ {print ... }' 
    

    【讨论】:

    • ~!!~有什么区别?
    • 感谢您的意见。我喜欢先创建文件的想法。您能否详细说明第二部分。据我了解,我仍然需要手动添加要排除的用户吗? @knittl 〜!可能是错字。
    • 没有。在您的原始解决方案中,您将用户放在 shell 变量 excluded_users 中。没有什么可以证明您在 awk 程序中使用这样的变量(并让 shell 扩展它)来生成您的用户列表。此外,没有什么可以阻止您从文件中加载这样的变量。不过,这些是不同的问题,如果您在这里遇到困难,我建议您针对相应的子问题提出一个新问题。
    猜你喜欢
    • 2022-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    相关资源
    最近更新 更多