#!/bin/sh #後々にデータの並び替えをしやすいように、与えられたデータをすべて一つのファイルにまとめたい。 #このスクリプトではそのための前準備を行う mkdir kadai2-2_data #この後コピーするためのディレクトリを先に作っておく。 cp -r -f ./kadai2_data/* ./kadai2-2_data # kadai2_data を中身ごと kadai2-2_data にコピーする。 #与えられたデータをひとつにまとめるにあたってそれぞれのデータの見分けをつけるために年、月をデータの最後につけておく。 for hg in `find ./kadai2-2_data/*` #コマンド「find」によりディレクトリ「kadai2-2_data」の中身を検索する。 #その中身である「○ ○ ○ ○ .csv」の全ファイル名を引数とし、その引数を変数$hgに代入しながらdoとdoneの間のコマンドを実行する。 do csv=`echo $hg | cut -d / -f 3` #変数hg、つまりファイル名「./kadai2-2_data/ 〜〜 - … … .csv」 から「/」を区切りとして3つ目の区分「 〜〜 - … … .csv」を取り出し、その名前を変数csvに代入する。 date=`echo $csv | cut -d . -f 1` #変数csv「 〜〜 - … … .csv」の名前から「.」を区切りとして一つ目の区分「 〜〜 - … … 」を取り出し、その名前を変数dateに代入する。 year=`echo $date | cut -d - -f 1` #変数date「 〜〜 - … … 」の名前から「-」を区切りとして一つ目の区分「 〜〜 」(つまり年の数字)を取り出し、その数字を変数yearに代入する month=`echo $date | cut -d - -f 2` #変数date「 〜〜 - … … 」の名前から「-」を区切りとして二つ目の区分「 … … 」(つまり月の数字)を取り出し、その数字を変数monthに代入する sed -i -e "s/$/,$year ,$month/" $hg #コマンド「sed」により変数hg、つまり各ファイル「○ ○ ○ ○ .csv」の中の各行の末尾に",変数year ,変数month"を付け加える done