#!/bin/sh #データの並び替えをするために、与えられたデータをすべて一つのファイルにまとめる 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