yanwuxin

导航

Linux中awk题型列举

一、题目要求

编写文件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}'

posted on 2023-05-31 20:38  凌晨五点的星  阅读(14)  评论(0编辑  收藏  举报  来源