カンマで区切られた3つの列(名前、姓、生年月日)で構成されるCSVファイルを取得し、同じ入力で別のCSVファイルを出力するbash / awk / sedスクリプトを作成するのに問題があります。追加の列には次のものが表示されます。現在の日付と生年月日の年の差。
$ yourscript <input CSV file> <output CSV file>
input.csv
次のように見えます。bob,wag,06/13/1958 ashley,hay,01/23/1983 evan,bert,09/11/1972
output.csv
次のようにする必要があります。bob,wag,06/13/1958,62 ashley,hay,01/23/1983,37 evan,bert,09/11/1972,48
ベストアンサー1
$ cat data
bob,wag,06/13/1958
ashley,hay,01/23/1983
evan,bert,09/11/1972
名前付きファイルに出力しoutput-file
て同時にSTDOUTに表示するには、次のようにします。
$ awk -v year="$(\date +%Y)" 'BEGIN{FS="/"} {print $0 "," year-$3}' data | tee output-file
bob,wag,06/13/1958,62
ashley,hay,01/23/1983,37
evan,bert,09/11/1972,48
または単に同じファイルに出力してください:
$ awk -v year="$(\date +%Y)" 'BEGIN{FS="/"} {print $0 "," year-$3}' data > output-file