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 

kommentit

  • Kiitos. Koodisi on yksinkertainen ja toimii hyvin. Haluaisin kysyä, kuinka voisin valita riviryhmän toisesta tiedostosta, esimerkiksi 8-rivistä 470-riviin. Voisin käyttää 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.
  • @ user1993416 yksinkertaisin muokkaus olisi todennäköisesti tail -q -n+8 file1 <(head -n 470 file2) file3
  • Lopuksi tulokset ovat 5 tiedostossa ja kahdessa niistä, minun on tehtävä head -n, kunnes jokin rivi. Voinko kirjoittaa jotain tail -q -n+8 file1 <(head -n470 file2 <(head -n380 file3)) file4 file5?
  • Olen lähettänyt uuden kysymyksen, johon on liitetty 5 tiedostoa. Terveisin.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *