awk


** 입력자료 **

donors.txt (이름, 전화번호, 3개월 동안 제공한 기부금 액수 데이터)


Mike Harrington:(510) 548-1278:  250:100:175 = 525
Christian Dobbins:(408) 538-2358: 155:90:201 = 446
Susan Dalsass:(206) 654-6279:250: 60:50 = 110
Archie McNichol:(206) 548-1348:  250:100:175 = 525
Jody Savage:(206) 548-1278:  15:188:150 = 353
Guy Quigley:(916) 343-6410:  250:100:175 = 525
Dan Savage:(406) 298-7744:  450:300:275 = 1025
Nancy McNeil:(206) 548-1278:  250:80:75 = 405
John Goldenrod:(916) 348-4278:  250:100:175 = 525
Chet Main:(510) 548-5258:  50:95:135 = 250
Tom Savage:(408) 926-3456:  250:168:200 = 618
Elizabeth Stachelin:(916) 440-1763: 175:75:300 = 550


** 연습하기 **

 

1. 전화번호를 모두 출력하라.

awk -F: '{print $2}' donors.txt

 

2. Dan의 전화번호를 출력하라.

awk -F: '/^Dan/ {print $2}' donors.txt

 

3. C나 E로 시작하는 이름 전체를 출력하라.

awk -F: '/^C|^E/ {print $1}' donors.txt

 

4. 지역번호가 916인 사람들의 전체 이름과 전화번호를 출력하라.

awk -F: '$2 ~ /916/ {print $1,$2}' donors.txt

 

5. 첫째 달에 $250를 기여한 사람들의 전체 이름과 첫째 달 기부 금액을 출력하라.

awk -F: '$3 ~/250/ {print $1,$3}' donors.txt

 

6. 3개월 동안 $800 이상 기부한 사람들의 전체 이름과 기부 금액의 합을 출력하라.
cat awk6
{
sum=$3+$4+$5;
if(sum>800)
        print $1,sum;
}
awk -F: -f awk6 donors.txt


7. 각 레코드의 번호를 행 앞에 함께 출력하라. (ex: 1 - Mike Harrington:(510) 548-1278:250:100:175)
cat awk7
{
printf "%d - %s\n", NR, $0;
}
awk -F: -f awk7 donors.txt


 


 

'삽질 > Com' 카테고리의 다른 글

Shell  (0) 2009.12.06
awk  (0) 2009.12.06
junk : 임시휴지통 만들기  (0) 2009.12.06
하위디렉토리의 종류 및 기능  (0) 2009.12.06
트리  (0) 2009.12.06
이중연결리스트  (0) 2009.12.06