一、题目要求
编写文件file的内容如下:
Mike Harrington:[510] 548-1278:250:100:175
Christian Dobbins:[408] 538-2358:155:90:201
Susan Dalsass:[206] 654-6279:250:60:50
Archie McNichol:[206] 548-1348:250:100:175
Jody Savage:[206] 548-1278:15:188:150
Guy Quigley:[916] 343-6410:250:100:175
Dan Savage:[406] 298-7744:450:300:275
Nancy McNeil:[206] 548-1278:250:80:75
John Goldenrod:[916] 348-4278:250:100:175
Chet Main:[510] 548-5258:50:95:135
Tom Savage:[408] 926-3456:250:168:200
Elizabeth Stachelin:[916] 440-1763:175:75:300
pass:
Mike Harrington 名字
[510] 548-1278 电话
250:100:175 过去三个月里的捐款
二:问题以及解答
第一步:touch一个file文件用来存储内容
touch file
(1)显示所有电话号码
cat file | awk -F: '{print $2}'
(2)显示Dan的电话号码
cat file | awk -F: '/Dan Savage/{print $2}'
(3)显示Susan的名字和电话号码
cat file | awk -F: '/Susan Dalsass/{print $1, $2}'
(4)显示所有以D开头的姓
cat file | awk -F: '$1 ~ /^D/{print $1}'
或者
cat file | awk -F: '$1 + /^D/{print $1}'
(5)显示所有以一个C或E开头的名
cat file | awk -F: '$1 ~ /^[CE]/{print $1}'
(6)显示所有只有四个字符的名,这里可以使用length函数,举例: length($1)==10 $1字符为10
cat file | awk -F: 'length($1) == 4 {print $1}'
(7)显示所有区号为916的人名
cat file | awk -F: '$2 ~ /\[916\]/{print $1}'
(8)显示Mike的捐款.显示每个值时都有以$开头.如$250$100$175
cat file | awk -F: '/Mike Harrington/{print "$" $3 "$" $4 "$" $5}'
(9)显示姓,其后跟一个逗号和名
cat file | awk -F: '{print $1 ", " $2}'