A 3 CSV-fájlban található adatokat a Gnuplot-tal kell ábrázolnom.

Gyakran , A következő kódot használom 2 CSV-fájl ábrázolásához:

$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 

A CSV-k három különböző könyvtárban vannak. Az adatok a 8. sornál kezdődnek, és ki kell vennem a " és , karaktereket, és az adatokat a 19. oszlop szerint kell rendezni.

Nem tudom, hogyan lehet kibővíteni ezt a kódot, hogy beillesszünk 3 különböző CSV-t, amelyek ugyanazt teszik, sort, tail -n+8 és tr parancsokat, és kap egy végső .txt fájlt az eredménnyel.

Válasz

Nem vagyok biztos benne, hogy a Gnuplot hogyan játszik ebben konkrétan, de ha tail fájlok keresésének módját keresi, akkor egyszerűen megteheti úgy, hogy átadja a nevüket a parancssorban.

Az egyetlen gotcha, hogy a tail elválasztja a kimeneteket egy fejléccel az emberi könnyebb megtekintés érdekében, hacsak nem adja hozzá a -q opciót:

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

Tehát amennyire látom, kihagyhatja a folyamathelyettesítéseket és a többszöröseket (r e) a rendezés egyszerűen megteszi

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

Megjegyzések

  • Köszönöm. A kód egyszerű és jól működik. Szeretném megkérdezni, hogyan választhattam ki a második fájl sorainak tartományát, például a 8-tól a 470-ig. Használhatnám a sed -n -e '8,470p' alkalmazást, de nem tudom, hogyan változtassam meg a megoldásodat. Szerintem a probléma az, hogy a három fájl közül csak az egyikre van szükségem erre a tartományra.
  • @ user1993416 valószínűleg a legegyszerűbb módosítás a következő lenne: tail -q -n+8 file1 <(head -n 470 file2) file3
  • Végül az eredményeim 5 fájlban vannak, és kettő közülük meg kell adnom a head -n -t egy sorig. Írhatok hasonlót: tail -q -n+8 file1 <(head -n470 file2 <(head -n380 file3)) file4 file5?
  • Új kérdést tettem fel az 5 fájl beillesztésével. Üdvözlettel.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük