Ik moet met Gnuplot de gegevens in 3 CSV-bestanden plotten.

Gewoonlijk , Gebruik ik de volgende code om uit 2 CSV-bestanden te plotten:

$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 

De CSVs staan in drie verschillende mappen. De gegevens beginnen bij rij 8 en ik moet de tekens " en , verwijderen en de gegevens sorteren op kolom 19.

Ik weet niet hoe ik deze code moet uitbreiden om 3 verschillende CSV “s te plakken en hetzelfde doen, sort, tail -n+8 en tr commandos, en ontvang een laatste .txt bestand met het resultaat.

Antwoord

Ik “weet niet zeker hoe Gnuplot hier specifiek in speelt, maar als je” op zoek bent naar een manier om tail meerdere bestanden te kunnen dit eenvoudig doen door hun namen op de opdrachtregel door te geven.

Het enige probleem is dat tail de uitgangen zal scheiden met een koptekst voor een betere menselijke weergave, tenzij u voeg de -q optie toe:

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

Voor zover ik kan zien, kun je de procesvervangingen overslaan en meerdere (r e) sorteert gewoon

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

Reacties

  • Bedankt. Uw code is eenvoudig en werkt prima. Ik zou je willen vragen hoe ik een reeks rijen in het tweede bestand kan selecteren, bijvoorbeeld van de 8-rij tot de 470-rij. Ik zou sed -n -e '8,470p' kunnen gebruiken, maar ik weet niet hoe ik je oplossing moet veranderen. Ik denk dat het probleem is dat ik deze bereikselectie in slechts een van de drie bestanden nodig heb.
  • @ user1993416 waarschijnlijk is de eenvoudigste wijziging tail -q -n+8 file1 <(head -n 470 file2) file3
  • Ten slotte staan mijn resultaten in 5 bestanden en 2 daarvan, ik moet de head -n tot een rij maken. Kan ik iets schrijven als tail -q -n+8 file1 <(head -n470 file2 <(head -n380 file3)) file4 file5?
  • Ik heb een nieuwe vraag gepost met de plak van de 5 bestanden. Met vriendelijke groet.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *