Minun täytyy piirtää 3 CSV-tiedostoon sisältyvät tiedot Gnuplotilla.
Yleensä , Käytän seuraavaa koodia kahden CSV-tiedoston piirtämiseen:
$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: t ovat kolmessa eri hakemistossa. Tiedot alkavat riviltä 8, ja minun on otettava pois "
– ja ,
-merkit ja lajiteltava tiedot sarakkeen 19 mukaan.
En tiedä miten laajentaa tätä koodia liittämään kolme erilaista CSV: tä samalla tavalla, sort
, tail -n+8
ja tr
-komennot ja hae lopullinen .txt
-tiedosto tuloksella.
Vastaa
En ole varma, miten Gnuplot pelaa tähän erityisesti, mutta jos etsit tapaa tail
useisiin tiedostoihin voi tehdä niin yksinkertaisesti välittämällä nimensä komentoriville.
Ainoa gotcha on, että tail
erottaa lähdöt otsikolla ihmisten helpomman katselun vuoksi, ellet lisää vaihtoehto -q
:
-q, --quiet, --silent never output headers giving file names
Niin pitkälle kuin näen, voit ohittaa prosessikorvaukset ja useita (r e) lajittelu yksinkertaisesti tekee
tail -q -n+8 ../Q1a/sim_Q1.csv ../Q1b/sim_Q1.csv ../Q1c/sim_Q1.csv | tr ""," " " | sort -nk19
sed -n -e '8,470p'
, mutta en tiedä miten muuttaa ratkaisuasi. Mielestäni ongelmana on, että tarvitsen tämän alueen valinnan vain yhdessä kolmesta tiedostosta.tail -q -n+8 file1 <(head -n 470 file2) file3
head -n
, kunnes jokin rivi. Voinko kirjoittaa jotaintail -q -n+8 file1 <(head -n470 file2 <(head -n380 file3)) file4 file5
?