shell脚本--建立办公室名录

首先copy一份/etc/passwd如下:

jones:*:32713:889:Adrian W. Jones/OSD211/555-0123:/home/jones:/bin/ksh
dorothy:*:123:30:Dorothy Gale/KNS321/555-0044:/home/dorothy:/bin/bash
toto:*:1027:18:Toto Gale/KNS322/555-0045:/home/toto:/bin/tcsh
ben:*:301:10:Ben Franklin/OSD212/555-0022:/home/ben:/bin/bash
jhancock:*:1457:57:Jhon Hancock/SIG435/555-0099:/home/jhancock:/bin/bash
betsy:*:110:20:Betsy Ross/BMD17/555-0033:/home/betsy:/bin/ksh
tj:*:60:33:Thomas Jefferson/BMD19/555-0095:/home/tj:/bin/bash
george:*:692:42:George Washington/BST999/555-0001:/home/george:/bin/tcsh

con.sh脚本:


#/bin/bash

PERSON="/tmp/pd.key.person"
OFFICE="/tmp/pd.key.office"
TEL="/tmp/pd.key.tel"
USER="/tmp/pd.key.user"

awk -F: '{ print $1":"$5 }' > $USER

sed -e 's=/.*==' -e 's=^\([^:]*\):\(.*\) \([^ ]*\)$=\1:\3 \2=' $USER | sort > $PERSON

sed 's=^\([^:]*\):[^/]*/\([^/]*\)/.*$=\1:\2=' $USER | sort > $OFFICE

sed 's=^\([^:]*\):[^/]*/[^/]*/\(.*\)$=\1:\2=' $USER | sort > $TEL

join -t: $PERSON $OFFICE |
	join -t: - $TEL		 |
   		cut -d: -f 2-	 |
	   		awk -F: '{printf("%-39s\t%s\t%s\n",$1,$2,$3)}'


rm $PERSON
rm $OFFICE
rm $USER
rm $TEL


[root@localhost ch5]# ./con.sh < passwd.txt 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值