始める無料で始める

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' の代わりに)。

実践的なインタラクティブ演習

理論を実践に変える、インタラクティブな演習のひとつをお試しください

演習を開始する