Melyik a leggyorsabb megoldás idézőjelek semmire cserélésére? Legalább 200MB-os text file-on kell előadnom, és nem is egyszer, ezért magától értetődő, hogy a leggyorsabb módszert keresem.
A gépben egy 1.6GHz mobil pentium és 1,25GB memória van. OP rendszer windows, és linux-szerűségként cygwin van rajta.
- 2090 megtekintés
Hozzászólások
sima cserére sima sed.
cat kvanagy.txt|sed -e 's/"//g' >jav_kvanagy.txt
további információ: man sed
Előtte nem árt a DOSos sortöréseket UNIXosra konvertálni, mert gondot okoz(hat)nak, bár még nem próbáltam.
Vagy: Wordpad (vagy CoolEdit vagy bármilyen _HASZNÁLHATÓ_ texteditor), Find/Replace menüpont, [X] Replace all.
- A hozzászóláshoz be kell jelentkezni
ha szamit a sebesseg, akkor a regexp joval tobb idot vesz igenybe, mint egy sima csere:
cat regi |tr -d '"' >uj
- A hozzászóláshoz be kell jelentkezni
Vagy a jo oreg Microsoft Word. Igenytelen, de barmit barmire lehet vele cserelni.
- A hozzászóláshoz be kell jelentkezni
200 megás állományban gyorsan? ;-) Kiváncsi lennék rá...
--
Az élet harc. Délelőtt az éhséggel, délután az álmossággal.
- A hozzászóláshoz be kell jelentkezni
Azert erdekelne, mennyi ido alatt csinalja meg egyik meg a masik.
- A hozzászóláshoz be kell jelentkezni
Kérjük meg a topicnyitót, hogy tesztelje le és akkor megnyugodhatunk.
--
Az élet harc. Délelőtt az éhséggel, délután az álmossággal.
- A hozzászóláshoz be kell jelentkezni
biztos jót tesz enki az említett méretű textfile. akkormár notepad.
- A hozzászóláshoz be kell jelentkezni
De abból is csak a notepad++, mert a winé szerintem simán elhasal tőle.
--
Az élet harc. Délelőtt az éhséggel, délután az álmossággal.
- A hozzászóláshoz be kell jelentkezni
Köszönöm a sok hozzászólásokat, alkalomadtán ki fogom próbálni egyiket-másikat.
Notepad2-vel próbálkoztam egy darabig, de már a beolvasás alatt megállt a gép, szóval valami sorszerkesztős megoldást kerestem.
...majd tesztelek, ha muszáj.
- A hozzászóláshoz be kell jelentkezni
cat idezojellel.txt | tr -d \" > nelkule.txt
real 0m14.691s
user 0m2.372s
sys 0m3.905s
cat idezojellel.txt | sed -e 's/"//g' > nelkule.txt
real 1m2.259s
user 0m49.240s
sys 0m3.584s
A vicc kedvéért kipróbáltam a simán képernyőre cat-elést:
cat idezojellel.txt
real 24m37.144s
user 2m41.331s
sys 5m2.404s
...és a másik file-ba cat-elést:
cat idezojellel.txt > nelkule.txt
real 0m14.981s
user 0m0.320s
sys 0m1.572s
A kérdés magától értetődő: Mi képes ugyanilyen rendszeren 10 másodperc alá szorítani a feldolgozási időt? :)))
Persze ki kéne próbálni rendesen linux alatt is, hátha még dob rajta egy kicsit a windows hiánya.
- A hozzászóláshoz be kell jelentkezni
Semmi az égegyadta világon nem képes rá, kivéve talán valami ramdisk féleség. Linux alatt mondjuk egy ~400MB-os tmpfs mount és persze megfelelő (>512MB) ram a gépbe.
Ha megnézed a
cat idezojellel.txt | tr -d \" > nelkule.txt
eredményét, látod, hogy a user time csak 2.3 sec, míg a real time 14.7s A 2.3s-en lehetne csak gyorsítani. De ha megnézed a sima cat-olást, ott a real time 15s, ami véletlenül még éppen több is, mintha az "-eket kiszedted volna. (ennyire sok volt az " a bemenetben, hogy jelentősen kissebb lett a kimenet?)
Látható, hogy itt már nem az "-ek kiszedése határozza meg az időt, hanem az, hogy mennyire gyorsan tudja beolvasni és kiírni a fájlokat a merevlemezre. Ha utánaszámolunk, hogy 2x200MB adatot kell megmozgatni, (figyelmen kívül hagyva, hogy mindezt ráadásul egyszerre 2 külön fileban) mondjuk egy tipikus 40MB/s-es átviteli sebességgel számolva az rögtön 10 sec. Az ide-oda seekelés a két file között kiadja a további 5 sec-et.
- A hozzászóláshoz be kell jelentkezni
Nem muszaj ram drive, csak ket egymastol fuggetlen kabelen logo winyo. Nagy mennyisegu adat feldolgozasanal ez a problema mindig elojon. pl hangsav kiszedese avi filebol: a proci rohogve megtudja csinalni, a winyok a szuk keresztmetszetek, persze mas a helyzet ide es scsi winyo eseten
Udv Zoli
- A hozzászóláshoz be kell jelentkezni
Egyébként igen, valóban az is megoldás. Én mindenesetre ilyen problémák esetekben a tmpfshez szoktam nyúlni, már ha belefér a cucc az 1GB ramomba.
- A hozzászóláshoz be kell jelentkezni
Ha passzolod a 200M+ filet akkor kiprobalom:D
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
Ha megmondod, hogy hogyan cseréljem véletlen karakterekre a számokat és betűket benne, akkor megkapod.
- A hozzászóláshoz be kell jelentkezni
Mit szólnál ahhoz a gyorsításhoz, hogy minden példádban kicszeded a tök fölösleges (és csak lassító) "cat file | " konstrukciót a feldolgozó parancs elől, és kicseréled egyszerű, fájlból jövő átirányításra (így: "< file" a parancs végére) ? (valahogy így: tr -d '"' > idezojeltelen.txt < idezojeles.txt)
(Ha csak le nem nyeli a kisebb-jeleimet)
- A hozzászóláshoz be kell jelentkezni
16 sec
- A hozzászóláshoz be kell jelentkezni
C program:
-2*lefoglal mem-ben file-meret
-beolvas egyben (read, nem fread, win alatt is van: _read)
-pointerekkel vegig megy "-t kihagy, tobbit masol
-egyben kiir (write, nem fwrite, win alatt is van: _write)
-exit(0)
az io a szuk keresztmetszet
szerintem a cygwin iszonyatosan lassu win alatt ilyenre.
g
- A hozzászóláshoz be kell jelentkezni