awk的混合编程

    将密码文件,格式化下变得好看些,第三个字段过期时间要转换成正常的日期。
可使用以下几种命令:
1)cat /etc/shadow | awk 'BEGIN {FS=":"};{OFS="\t"};{ORS=""} {printf "%-20s\t",$1};system(" echo -n `date --date=\"19700101 +"$3" days\" +%Y%m%d`");{print "\t"$2"\n"}'
2)cat /etc/shadow | awk 'BEGIN {FS=":";OFS="\t";ORS=""};{printf "%-20s\t",$1};system("echo -n $(date --date=\"19700101 +"$3" days\" +%Y%m%d)");{print "\t"$2"\n"}'
3)cat /etc/shadow | awk 'BEGIN {FS=":";ta="19700101 +"};{tc=ta""$3" days"; "date --date=\""tc"\" +%Y%m%d" | getline bb} ; {print $1,$2,bb}'
4)head -n4 /etc/shadow | awk 'BEGIN {FS=":";OFS="\t"};{"date --date=\"19700101 +"$3" days\" +%Y%m%d" | getline expir};{print $1,$2,expir}'
1、2这两种方式实际上是一样的。

其中FS表示分隔符,OSF表示输出的分隔符;ORS表示结束符,默认为换行符;echo -n表示不换行;
root                	20120811	!
daemon              	20100429	*
bin                 	20100429	*
sys                 	20100429	*
sync                	20100429	*
games               	20100429	*
man                 	20100429	*
lp                  	20100429	*
mail                	20100429	*
news                	20100429	*
uucp                	20100429	*
proxy               	20100429	*
www-data            	20100429	*
backup              	20100429	*
list                	20100429	*
irc                 	20100429	*


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值