gpt4 book ai didi

linux - Linux 中匹配数据然后打印某些数据的最佳命令

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:58 26 4
gpt4 key购买 nike

我希望读取/etc/shadow 文件并删除第二个字段中等于 * 或 !并且第 5 个字段中的任何内容不等于 90,然后打印出第 1 个字段、第 5 个字段和第 6 个字段,并在每行的末尾添加主机名并将其输出到文件中。我不确定这里的最佳选择是什么....

/etc/shadow 文件示例

foo:$6$91s00atqlok0b861$7IJdhycBWBwipe82y6kaoXnAbwqhJNPyxXIiWzCFpb0um2aEquBKIaH5OAlGRAeua2F6jk6qQiicpC21aiTvt.:12345:7:90:7:30::
foofoo:!!:123456:0:90:7:::
foofoofoo:$6$5WSZ.Gde$RGkaObncaycypz9.wnerXauAPyIqyDQzh9cyUPuZ4LiNfRDGIS5DasngA5x51HPczH9NsE8mvkClIOs7a1K3p0:1234:0:99999:7:::

输出

foofoofoo, 99999, 7, hostname 

Field1=username<br/>
Field2=password<br/>
Field5=# days p/w needs to be changed<br/>
Field6=# of days to warn

非常感谢

最佳答案

如果我答对了你的问题,这就是你要找的东西:

awk -v hostname=$(hostname) -F: '{ if ($2 != "*" && $2 != "!" && $5 == "90") { printf("%s %s %s %s\n", $1, $5, $6, hostname)}}' /etc/shadow >output

关于linux - Linux 中匹配数据然后打印某些数据的最佳命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41988448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com