![]() |
Hello and Welcome-tól az Egyesült Államokat, hogy az UNIX és Linux Forums? Köszönjük, hogy meglátogatta és csatlakozik Globális Közösség.
|
|
google unix.com
|
|||||||
| Fórumok | Regisztráció | Fórum Szabályok | Linkek | Albumok | GYIK | Tagok listája | Naptár | Keres | Mai hozzászólások | Megjelöl Fórumok Olvas |
| Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt. |
Több, UNIX és Linux fórum témák Ön által talált Hasznos
|
||||
| Szál | Thread Starter | Fórum | Válaszok | Utolsó hozzászólás |
| Szállítmány av fájlt 2 speciális alapuló textpattern | borgeh | Shell programozás és Scripting | 0 | 09-24-2007 07:02 PM |
| Fájl beszúrása 1 egy adott helyen a 2-fájl | JCR | Shell programozás és Scripting | 1 | 02-01-2007 11:48 AM |
| hogyan kell szerkeszteni a nagy fájlok UNIX | balireddy_77 | Shell programozás és Scripting | 3 | 12-14-2006 07:40 AM |
| Segítség a szerkesztéshez nagy kép | jxh461 | Shell programozás és Scripting | 8 | 05-19-2003 04:38 PM |
| hogyan kell szerkeszteni a nagy fájlokat a vi | nazri | A UNIX a dummies Kérdések és válaszok | 3 | 06-15-2001 09:18 AM |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma | Rate Thread | Megjelenítési módok |
|
|
|
||||
|
Edit a nagy fájlok helyett
Folks,Nekem van egy fájl, 50 millió miután 2 oszlopokat. Meg kell tenni a következők: 1. Mintegy véletlen számokat a fix hosszúságú. 2. Helyezzük a második oszlopban a véletlenszerűen kiválasztott sorok a véletlen számokat. Próbáltam használ egy kicsit perl hogy a véletlenszerű számokat és sed helyére kézzel. A problémát úgy látom, hogy létrehoz egy output helyébe a rekord összes 50 millió. Inkább nem kell a kimeneti létrehozandókéra minden sorban frissítést. Szeretném, ha a teljesítmény, ha minden a frissítések tenni .... Arra gondoltam, ha lehet szerkeszteni a fájl használatával sed ... Én próbál keresni ezen a helyen lehetőség .. de én dont volna a GNU változata SED ... Any thoughts ...? Köszönöm V |
|
||||
|
Itt az első át a követelmény:
>> 1. Mintegy véletlen számokat a fix hosszúságú. i \u003d 00000000 echo $ RANDOM $ i | cut-c 1-8 A fenti szolgálja generál véletlen számokat több mint 50 millió, megint nem tudja biztosan, hogy milyen gyakran több ismétli! nem derül ki, a második követelményt. egyedi kérlek ... -Ilan |
|
||||
|
Szia Ilan,
Kösz, hogy ezt ... Én már az első darab alakított ki ... Én is generál egy véletlen számot használ egy kis perl parancsfájlt, hogy letöltötte a nettó ... de van egy probléma-val a második rész ... Megpróbálom leírni, hogy jobb. Én már 50 millió, 2 oszlopokat. Mind az oszlopok vannak jelen a rekordokat. STEP1: Létrehoz egy véletlenszerű érték (ez az a része, gondoltam arra, fent) 2. lépés: Keresse meg a véletlen rekord között, a 50 millió Step3: Az az érték, a második oszlopban az értéket generált 1 lépésben. Step4: Menj vissza a STEP1, egy új értéket, keressen másik véletlenszerű rekord, cserélje ki ezt az értéket, és így tovább, mintegy egy millió alkalommal. Azt akarom, hogy tudja, hogy ezt a helyet, mert mindig én pótolja a nyilvántartás segítségével awk, ezért a teljes 50 millió befogadó a változás, mint a kimenő és én át a kimenetet egy másik fájlt, nevezd át az eredeti, és kezdje újra Ismét a következő iterációs. Amire szükség van, olyan módon, hogy módosítsuk a fájl helyett egy véletlenszerű loop azonosító adatok és a változó a második oszlop egy millió alkalommal. A magas szintű követelmény a következő: Mivel a kép az 50 millió, van-e egy fájl, ami 50 millió, de az 1 millió, amelynek második oszlop változik, hogy az első kép. Lehet, hogy van egy egyszerűbb módja annak, hogy ezt ... De én most stumped .... Köszönöm, V |
|
||||
|
12123 | 12345678
42142 | 23442253 52315 | 32250205 .... .... ... .... .... mintegy 50 millió Most akarok véletlenszerűen választani nyilvántartásokat, és módosítsa az értéket a második oszlop Például, ha úgy döntök, a második feljegyzés szúrópróbaszerűen. Fogok változtatni a 2. oszlop a véletlen érték: 12123 | 12345678 42142 | 53988989 52315 | 32250205 .... .... ... .... .... ugyanazon művelet 1 millió alkalommal kiválasztásánál minden alkalommal más rekordot véletlenszerűen. |
|
||||
|
Megpróbáltam az alábbi kódot AIX, a KSH
kódot a hosszú, de nincs közben stb hadd mondja el az eredeti file origfile 1. lépés. sed s /"|"/" "/ g origfile> átmeneti / ** Ha dont volna sed , meg kell változtatni "|" üres a someting * / / Ezt követően az eredeti kép így néz ki 12123 12345678 * / grep-n "^ $" átmeneti> origfile, rm átmeneti / * után az eredeti kép így néz ki; 1 12123 12345678 2 42142 53988989 2. lépéssel. / ** előállításához 1 millió véletlen számokat, és mentse a RandNumbersFile ** / 3. lépést. / ** előállításához 1 millió véletlen számokat, és mentse a RandRecordsFile ** / sort-u RandRecordsFile> átmeneti mv átmeneti RandRecordsFile / * lehet előállítani 1 millió számot, de ha ez a fajta unically lehet kevesebb, mint 1 millió. akkor győződjön meg róla, hogy minden sorban ez a fájl egyedi, a fenti parancs intézkedik e * / Legyen "NeededLine \u003d 1000000 -` wc-l RandRecordsFile | awk '(print $ 1)' "" / * Ez a sor megmutatja, hogy hány új rekord van szükség után sort * / counter \u003d 0 míg [$ counter-lt $ NeededLine] tesz / ** termék véletlen RandomRecord (jelentése véletlenszerű szám). Azt hozzá kell adnia a kódot itt ** / $ grep RandomRecord RandomRecordsFile> / dev / null if [$? -ne 0] majd echo $ RandomRecord>> RandomRecordsFile Legyen "counter \u003d $ counter +1" fi kész sort-u RandomRecordsFile> átmeneti Beillesztés átmeneti RandNumbersFile> RandomRecordsFile rm átmeneti / ** Ezt követően a RandomRecordsFile így néz ki; 1 12345678 27 53988989 első jelentése rekord szám, a második rundom területen (orig második mező) ** / csatlakozzon-v1 origfile RandomRecordsFile> átmeneti / ** páratlan sorokat ** / csatlakozzon-o 1.1,1.2,2.2 origfile RandomRecordsFile>> átmeneti / * kiegyenlített tételek * / sort-u átmeneti> origfile / * sort a field1 * / / ** ha szükséges fel ezeket a sorokat cut-f2, f3 origfile> átmeneti sed s / ""/"|"/ g átmeneti> origfile ** / rm átmeneti így a kód; / ** előállításához 1 millió véletlen számokat, és mentse a RandNumbersFile ** / / ** előállításához 1 millió véletlen számokat, és mentse a RandRecordsFile ** / CP yourfile origfile sed s /"|"/" "/ g origfile> átmeneti grep-n "^ $" átmeneti> origfile sort-u RandRecordsFile> átmeneti mv átmeneti RandRecordsFile Legyen "NeededLine \u003d 1000000 -` wc-l RandRecordsFile | awk '(print $ 1)' "" míg [$ counter-lt $ NeededLine] tesz / ** termék véletlen RandomRecord (jelentése véletlenszerű szám). Azt hozzá kell adnia a kódot itt ** / $ grep RandomRecord RandomRecordsFile> / dev / null if [$? -ne 0] majd echo $ RandomRecord>> RandomRecordsFile Legyen "counter \u003d $ counter +1" fi kész sort-u RandomRecordsFile> átmeneti Beillesztés átmeneti RandNumbersFile> RandomRecordsFile csatlakozzon-v1 origfile RandomRecordsFile> átmeneti csatlakozzon-o 1.1,1.2,2.2 origfile RandomRecordsFile sort-u átmeneti> origfile rm átmeneti Last edited by fazliturk; 09/03/2007 at 08:41 AM.. |
![]() |
| Könyvjelzõk |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|