![最近3年間勤務した従業員を知りたいです。 [閉じる]](https://linux33.com/image/147988/%E6%9C%80%E8%BF%913%E5%B9%B4%E9%96%93%E5%8B%A4%E5%8B%99%E3%81%97%E3%81%9F%E5%BE%93%E6%A5%AD%E5%93%A1%E3%82%92%E7%9F%A5%E3%82%8A%E3%81%9F%E3%81%84%E3%81%A7%E3%81%99%E3%80%82%20%5B%E9%96%89%E3%81%98%E3%82%8B%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番目のエントリは購読日です。今度は5番目のフィールドから年を抽出したいと思います。
答え1
日付比較でawkコマンドを作成しようとしています。日付に応じて、次のいずれかを試してください。
BSD日付
awk -F'~' '$5 <= '$(date -v-3y +%Y%m%d)'{print $2,$3}' file
GNU(Linux)日付
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