Jeg må plotte dataene i 3 CSV-filer med Gnuplot.

Vanligvis , Jeg bruker følgende kode for å plotte fra 2 CSV-filer:

$datablock << EOD `cat ../Q1a/sim_Q1.csv <(tail -n+8 ../Q1b/sim_Q1.csv | tr ""," " " | sort -nk19 )| tail -n+8 | tr ""," " " | sort -nk19 > ../Q1a/Q6_ressult.txt` EOD set print "|bash -x" print $datablock set print 

CSV-ene er i tre forskjellige kataloger. Dataene starter på rad 8, og jeg må ta ut " og , -tegnene, og sortere dataene etter kolonne 19.

Jeg vet ikke hvordan jeg skal utvide denne koden til å lime inn 3 forskjellige CSV-er som gjør det samme, sort, tail -n+8 og tr kommandoer, og få en endelig .txt fil med resultatet.

Svar

Jeg er ikke sikker på hvordan Gnuplot spiller inn i dette spesifikt, men hvis du leter etter en måte å tail flere filer til deg kan gjøre det ganske enkelt ved å sende navnene sine på kommandolinjen.

Den eneste gotchaen er at tail vil skille utgangene med en overskrift for lettere menneskelig visning med mindre du legg til -q alternativet:

 -q, --quiet, --silent never output headers giving file names 

Så vidt jeg kan se, kan du hoppe over prosessubstitusjoner og multiple (r e) sorterer ganske enkelt

tail -q -n+8 ../Q1a/sim_Q1.csv ../Q1b/sim_Q1.csv ../Q1c/sim_Q1.csv | tr ""," " " | sort -nk19 

Kommentarer

  • Takk. Koden din er enkel og fungerer bra. Jeg vil spørre deg hvordan kunne jeg velge et radrekke i den andre filen, for eksempel fra 8-raden til 470-raden. Jeg kunne brukt sed -n -e '8,470p', men jeg vet ikke hvordan jeg skal endre løsningen din. Jeg tror problemet er at jeg trenger dette utvalg av utvalg i bare en av de tre filene.
  • @ user1993416 sannsynligvis ville den enkleste modifikasjonen være tail -q -n+8 file1 <(head -n 470 file2) file3
  • Endelig er resultatene mine i 5 filer og to av dem, jeg må lage head -n til noen rad. Kan jeg skrive noe som tail -q -n+8 file1 <(head -n470 file2 <(head -n380 file3)) file4 file5?
  • Jeg har lagt ut et nytt spørsmål med lim inn de 5 filene. Hilsen.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *