sala@home:~$

csplit

Korábban már említettem a split parancsot, mellyel nagy fájlokat tudunk darabolni. Ha szövegfájlokat szeretnénk darabolni, akkor érdemesebb a csplit program használata, amivel a szövegfájl tartalma szerint adhatjuk meg a darabolás szabályait. Legegyszerűbb esetben azt szeretnénk, ha a darabolás során nem vágnánk ketté a sorokat, vagyis csak annyit kell meghatároznunk, hogy melyik sornál vágjuk szét a fájlt. Alapesetben a program

xx00, xx01, ...

nevű fájlokat gyárt. Érdemes a

--prefix

kapcsoló segítségével az

xx

-nél értelmesebb prefixet megadni, és a

-n

kapcsolóval az alapértelmezett 2 számjegy helyett többet kérni. A további példákban az egyszerűség kedvéért nem jelzem a

--prefix, -n

kapcsolókat. Az első részbe a szövegfájl első 10 sora kerül, az összes többi sor a második részbe:

csplit test.txt 11

Nem elírás a 11, az első sor indexét kell megadni, ami nem kerül be a részbe. Az első részbe az fájl első 10 sora kerül, a 11-30. sorok a második részbe, a harmadik rész tartalmazza az összes sort a 31.-től:

csplit test.txt 11 31

Ha 10 soros darabokat szeretnénk, akkor az előzőek alapján már menne, de nagyon sok számot kellene felsorolni. Szerencsére megy ez egyszerűbben is, kapcsoszárójelek között megadva egy számot, meg lehet ezt oldani felsorolás nélkül is:

csplit test.txt 10 {5}

A fenti parancs hatására a 5 ismétlést kérünk, vagyis összesen 6 darabolási szabályt adunk meg, vagyis 7 darabra vághatjuk a szövegfájlt. Várakozásunkkal ellentétben (legalábbis engem meglepett) az első darab 9 soros, a 2., 3., 4., 5., 6. darab 10 soros, és a maradék kerül a 7. darabba. Felmerülhet a kérdés, mi történik, ha nincs is ilyen sok sorunk, nos ebben az esetben sajnos hibaüzenetet kapunk és nem készülnek el a darabolás. Érdemes ilyenkor a

-k

kapcsolót használni, aminek hatására a hibaüzenetet továbbra is megkapjuk, de a darabolás elkészül:

csplit -k test.txt 10 {5}

 Ha nem szeretnénk előre megadni a darabok számát, akkor az ismétlések száma helyett írhatunk -ot: csplit -k test.txt 10 {}  Ennek hatására 10 soros darabokat (na jó, az első 9 soros lesz) kapunk, a darabok számát a fájl mérete határozza meg.