![최근 3년간 근무한 직원을 알고 싶습니다. [닫기]](https://linux55.com/image/147988/%EC%B5%9C%EA%B7%BC%203%EB%85%84%EA%B0%84%20%EA%B7%BC%EB%AC%B4%ED%95%9C%20%EC%A7%81%EC%9B%90%EC%9D%84%20%EC%95%8C%EA%B3%A0%20%EC%8B%B6%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
다음과 같은 데이터가 있습니다.
7369~SMITH~CLERK~7902~19801217~800~~20~
7499~ALLEN~SALESMAN~7698~19810220~1600~300~30~
7521~WARD~SALESMAN~7698~19810222~1250~500~30~
7566~JONES~MANAGER~7839~19810402~2975~~20~
7654~MARTIN~SALESMAN~7698~19810928~1250~1400~30~
7698~BLAKE~MANAGER~7839~19810501~2850~~30~
7782~CLARK~MANAGER~7839~19810609~2450~~10~
7788~SCOTT~ANALYST~7566~19821209~3000~~20~
7839~KING~PRESIDENT~~19811117~5000~~10~
7844~TURNER~SALESMAN~7698~19810908~1500~0~30~
5번째 항목이 가입 날짜입니다. 이제 다섯 번째 필드에서 연도를 추출하고 싶습니다.
답변1
날짜 비교를 통해 awk 명령을 작성하려고 합니다. 날짜에 따라 다음(1) 중 하나를 시도해 보세요.
BSD 날짜
awk -F'~' '$5 <= '$(date -v-3y +%Y%m%d)'{print $2,$3}' file
GNU(리눅스) 날짜
awk -F'~' '$5 <= '$(date -d '3 years ago' +%Y%m%d)'{print $2,$3}' file
답변2
데이터가 포함된 파일을 입력이라고 가정합니다.
cut -d '~' -f 5 input | cut -c 1-4
산출:
1980
1981
1981
1981
1981
1981
1981
1982
1981
1981