1つのループで複数のコマンドを実行するにはどうすればよいですか?
ファイル名を表示するのはデバッグに役立ちますが、ループ本来の目的は複数のファイルに対して処理を行うことです。 次のループは、各データファイルの2行目を出力します。
for file in seasonal/*.csv; do head -n 2 $file | tail -n 1; done
これは、これまでに見てきた他のループと同じ構造を持っています。異なるのは、本体が単一のコマンドではなく、2つのコマンドから成るパイプラインになっている点だけです。
この演習はコースの一部です
Shell 入門
演習の手順
2017年7月(2017-07)の最後の記録をすべての季節ファイルに対して出力するループを書いてください。出力は以下のようになるはずです:
grep 2017-07 seasonal/winter.csv | tail -n 1
ただし、それぞれの季節ファイルごとに別々に行ってください。ループ変数の名前には file を使い、ファイルのリスト seasonal/*.csv をループ処理することを忘れないでください(例の 'seasonal/winter.csv' の代わりに)。
