【发布时间】:2015-03-19 14:27:15
【问题描述】:
我正在尝试编写一个输出用户名、真实姓名和帐户到期日期的脚本。 这是我目前的代码。
awk -F: '$3 > 1000 { print $1, $5 }|grep /etc/shadow (print $9)to_date('1970-01-01','YYYY-MM-DD') + numtodsinterval(1244108886,'SECOND')
输入:
smithj:Ep6mckrOLChF.:10063:0:99999:7:::
westf:Ep7uopliokmmm.:1058:0:1087654:7:::
martinezj:GHolimpjk90.:1010:0:1008759:7::
输出:
John Smith Password expires never
Frank West Password expires: May 8th 2015
Jose Martinez Password expires: August 12th 2015
【问题讨论】:
-
我认为您想将 grep 导入 awk。它还缺少一个关闭 ' 或嵌套 ''' ... 例如:unix.stackexchange.com/questions/169911/…
-
您能解释一下您遇到的问题吗?
-
我只是想确保 synatx 是正确的,因为我不确定如何使用管道输出 2 个文件。另外,我不能 100% 确定打印出 &9 和 to 日期会以正常方式显示日期。
-
我希望脚本只显示实际登录的用户。 Root 永远不会过期 user1 会在 2015 年 3 月 20 日过期
-
差不多了 - 现在您已经添加了示例输入和预期输出,但您还没有告诉我们如何将一个映射到另一个。输入文件中的
smithj如何变成输出中的John Smith?您从smithj:Ep6mckrOLChF.:10063:0:99999:7:::的哪个字段确定他的密码永不过期?您从westf:Ep7uopliokmmm.:1058:0:1087654:7:::的哪个字段获得Frank West并且他的密码在May 8th 2015到期?我强烈怀疑您实际上有 2 个输入文件要处理,到目前为止您只向我们展示了其中一个,因此我们遗漏了很多难题。