1. 学ぶ
  2. /
  3. コース
  4. /
  5. Shell 入門

Connected

演習

1つのループで多くのコマンドをどう実行しますか?

ファイル名を表示するのはデバッグに便利ですが、ループの本当の目的は複数ファイルに対して処理を行うことです。 次のループは、各データファイルの2行目を表示します:

for file in seasonal/*.csv; do head -n 2 $file | tail -n 1; done

これまで見てきた他のループと同じ構造で、異なるのは本体が1つのコマンドではなく2つのコマンドからなるパイプラインになっている点だけです。

指示

100 XP

各 seasonal ファイルごとに、2017年7月(2017-07)の最後の行を表示するループを書いてください。出力は次のようなものに近くなるはずです:

grep 2017-07 seasonal/winter.csv | tail -n 1

ただし、seasonal ファイルをそれぞれ個別に処理します。ループ変数の名前は file を使い、例のような 'seasonal/winter.csv' ではなく、seasonal/*.csv というファイル一覧に対してループすることを忘れないでください。