Kom igångKom igång gratis

Hur kör jag många kommandon i en enda loop?

Att skriva ut filnamn är användbart vid felsökning, men det egentliga syftet med loopar är att utföra operationer på flera filer. Den här loopen skriver ut den andra raden i varje datafil:

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

Den har samma struktur som de andra loopar du redan sett: enda skillnaden är att loopens kropp är en pipeline med två kommandon i stället för ett enda kommando.

Den här övningen är en del av kursen

Introduktion till Shell

Visa kurs

Övningsinstruktioner

Skriv en loop som skriver ut den sista posten från juli 2017 (2017-07) i varje säsongsfil. Den ska ge ett liknande utdata som:

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

men för varje säsongsfil separat. Använd file som namn på loopvariabeln och kom ihåg att loopa igenom fillistan seasonal/*.csv (i stället för 'seasonal/winter.csv' som i exemplet).

Interaktiv övning med praktiskt arbete

Gör teori till handling med en av våra interaktiva övningar

Starta övningen