说明
本文案例摘自《unix shell 范例精讲》,答案是自己写的,如果有错的地方或其他方法欢迎指教。
范例
[root@chboa scr2]# cat awk2.test
ke 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
习题一
1. 显示所有电话号码
2. 显示Dan的电话号码
3. 显示Susan的名字和电话号码
4. 显示所有以D开头的姓
5. 显示所有以一个C或E开头的名
6. 显示所有只有四个字符的名
7. 显示所有区号为916的人名
8. 显示Mike的捐款.显示每个值时都有以$开头.如$250$100$175
9. 显示姓,其后跟一个逗号和名,如Jody,Savage
10.写一个awk的脚本,它的作用:显示Savage的全名和电话号码.显示Chet的捐款.显示所有头一个月捐款$250的人名.
答案:
awk -F: '{print $2}' awk2.test
awk -F: '/Dan/{print $2}' awk2.test
awk -F: '/Susan/{print $1,$2}' awk2.test
awk -F[ :] '$2 ~ /^D/{print $2}' awk2.test
awk -F"[ :]" '$1 ~ /^[C|E]/{print $1}' awk2.test
awk -F"[ :]" '$1 ~ /^....$/{print $1}' awk2.test
awk -F"[ :]" '$3 ~ /916/{print $1}' awk2.test
awk -F: '$1 ~ /Mike/{print "$"$3"$"$4"$"$5}' awk2.test
awk -F: '{print $1}' awk2.test |awk '{print $1","$2}'
------------------------
#cat awk.scl
$2~/Savage/{print $1,$2,$3,$4}
$1~/Chet/{print "$"$5,"$"$6,"$"$7}
$5~/250/{print $1,$2}
#awk -F"[ :]" -f awk.scl awk2.test
-------------------------------
习题二
1.打印在第二个月捐款超过100美元的人的姓和名
2.打印在最后一个月捐款少于85美元的人的姓名和电话号码
3.打印第一个月捐款额在40-150美元之间的人
4.打印这3个月的捐款总额不超过800美元的人
5.打印月均捐款额大于200美元的人的姓名和电话号码
6.打印不在916区的人的姓
7.打印每条记录,并在其记录前加上其记录号
8.打印每个人的姓名和捐款总额
9.把Chet第二个月的捐款额加上10
10.把Nancy McNeil的名字改成Louise Mclnnes
答案:
awk -F: '$4 > 100{print $1}' b.test
awk -F: '$5<85{print $1,$2}' b.test
awk -F: '$3>40 && $3<150{print $1}' b.test
awk -F: '$3+$4+$5<800{print $1}' b.test
awk -F: '($3+$4+$5)/3<200{print $1}' b.test
awk -F"[ :]" '$3!="[916]"{print $2}' b.test
awk '{print NR,$0}' b.test
awk -F: '{print $1,$3+$4+$5}' b.test
awk -F: '/^Chet/{$4=$4+10;print}' b.test
awk -F: '/^Nancy/{$1="Louise McLnnes";print}' b.test
转载于:https://blog.51cto.com/chboy/1708927