Bashスクリプト/awk入出力CSVファイル

Bashスクリプト/awk入出力CSVファイル

カンマで区切られた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

おすすめ記事