2020-05-16 기준으로 작성되었으며, 블로그 글 작성을 위해 조금 수정되었습니다.
실습 문제(교재 286쪽)
1. 파일압축 실습
내 홈 디렉터리에 아래에 있는 모든 파일들을 다른 호스트로 옮기기 위해 다음 순서대로 수행한다. |
(1) 홈 디렉터리 아래에 있는 모든 파일들을 tar 파일로 묶는다.
tar –cvf를 이용해 teak(홈 디렉터리) 디렉터리를 ~.tar 파일로 만든다.
(2) 이 tar 파일을 압축한다.
gzip을 이용해 ~.tar.gz로 압축한다.
(3) 압축 파일을 풀어 tar 파일을 만든다.
gzip -d을 이용해 ~.tar.gz 파일 압축을 푼다.
(4) tar 파일을 풀어서 원래 파일들을 회복한다.
tar –xvf를 이용해 .tar 파일을 teak 디렉터리로 풀어낸다.
2. 파일 정렬 실습
다음 내용으로 텍스트 파일을 작성하고 sort 명령어를 이용하여 이름순으로, 급여 순으로 각각 정렬하여 저장하시오.
우선 vi로 sortexample.txt 텍스트 파일을 만든다.
-k 2 옵션을 통해 이름순으로 정렬하기
-k 5(중간에 탭이 한번 더들어가서 급여는 5번째이다.) 옵션을 통해 급여 순으로 정렬하기
3. awk 프로그램 작성
2번에서 작성한 파일을 대상으로 하여 다음을 수행하는 awk 프로그램을 작성하시오.
(1) 이름과 이메일만을 출력한다.
액션을 print $2, $6으로 주어서 이름과 이메일만 출력한다.
(2) 가장 많은 급여를 받는 직원의 이름과 급여만을 출력한다.
파이프를 이용해서 작성했다. sort –r –k 5로 급여를 높은 순으로 정렬하고, NR == 1로 첫 번째 줄의 $2(이름), $5(급여) 값만 출력했다.
(3) 각 부처별 급여액을 계산하여 출력하고, 전체 급여액을 계산하여 출력한다.
요약하자면 if문과 else if문으로 $4(부처별)로 나눠서 급여액을 더했다.
그리고 END와 print문으로 각 부처별 급여액과 전체 급여액을 출력하였다.
(4) 급여가 6000 이상인 직원들의 이름과 급여를 출력한다.
if문으로 급여가 6000 이상인 직원들의 이름과 급여를 출력했다.
(5) 이 파일의 각 줄을 역순으로 출력한다.
문장 출력한 것을 파이프로 sort –r로 역순으로 정렬했다.