The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Splitting av filen i 2 på bestemte sted baseret på textpattern borgeh Shell Programmering og Scripting 0 09-24-2007 08:02 PM
indsætte fil 1 på et bestemt sted i fil 2 FFC Shell Programmering og Scripting 1 02-01-2007 11:48 AM
hvordan du redigerer stor fil i UNIX balireddy_77 Shell Programmering og Scripting 3 12-14-2006 07:40 AM
Hjælp til at redigere en stor fil jxh461 Shell Programmering og Scripting 8 05-19-2003 05:38 PM
hvordan man kan redigere store filer via VI nazri UNIX for dummyer Spørgsmål & svar 3 06-15-2001 10:18 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 08-29-2007
mvijayv mvijayv is offline
Registreret Bruger
  
 

Join Date: Jan 2007
Stillinger: 16
Rediger en stor fil på plads

Kære venner,
Jeg har en fil med 50 millioner registreringer under 2 kolonner. Jeg er nødt til at gøre det nedenfor:
1. Generere nogle tilfældige tal af en fast længde.
2. Erstat den anden kolonne af tilfældigt udvalgte rækker med tilfældige tal.

Jeg forsøgte at bruge en lille smule perl til at generere tilfældige tal og sed at erstatte den manuelt. Det problem jeg ser er, at det genererer en output med erstattes record med alle 50 millioner registreringer. Jeg vil hellere ikke have det output, der genereres for hver række opdatering. Jeg kunne godt tænke mig at få output når alle opdateringer, der er gjort ....
Jeg tænkte, hvis jeg kunne redigere filen på plads med sed ... Jeg havde forsøgt at kigge efter dette in-sted mulighed .. men jeg dont have GNU version af SED ...

Nogen tanker ...?

Tak
V
  #2 (permalink)  
Old 08-30-2007
Ilan ilan is offline
Registreret Bruger
  
 

Join Date: Jul 2007
Stillinger: 101
Her er den oprindelige flytte på dit krav:
>> 1. Generere nogle tilfældige tal af en fast længde.

i \u003d 00000000
echo $ RANDOM $ i | cut-C 1-8

ovennævnte tjener til at generere tilfældige tal for mere end 50 millioner registreringer; igen ikke sikker på, hvor ofte en række gentager!

ikke klart, om det andet krav. være specifik venligst ...

-Ilan
  #3 (permalink)  
Old 08-30-2007
mvijayv mvijayv is offline
Registreret Bruger
  
 

Join Date: Jan 2007
Stillinger: 16
Hi Ilan,
Tak for at tage dette op ... Jeg har den første brik regnet ud ... Jeg kan generere et tilfældigt tal med en lille perl script, som jeg hentede i netto ... men jeg har et problem med den anden del ... Jeg vil prøve at beskrive det bedre.

Jeg har 50 millioner registreringer med 2 kolonner. Både kolonner er til stede i alle registre.

Trin 1: Generer en tilfældig værdi (dette er den del jeg regnet ud ovenfor)
Trin 2: Find en tilfældig record blandt de 50 millioner
Step3: Erstat værdien i anden kolonne med den værdi, der genereres i trin 1.
Step4: Gå tilbage til Trin 1, generere en ny værdi, skal du kigge efter en anden tilfældig registrere, erstatte det med denne værdi, og så videre for omkring en million gange.

Jeg ønsker at kunne gøre dette på plads, da hver gang jeg erstatte et rekordstort bruger awk, det giver hele 50 millioner inklusive at forandring som produktion og jeg har omlægge produktionen til en anden fil, skal du omdøbe den til det oprindelige og starte forfra igen til næste iteration.
Hvad jeg behøver, er en måde at redigere filen på plads i en løkke identificere tilfældige journaler og ændre den anden kolonne en million gange.


De høje krav er:
Da en fil på 50 millioner bøger, jeg har til at generere en fil, der har 50 millioner bøger, men har 1 million registreringer hvis anden kolonne varierer fra den første fil. Måske der er en nemmere måde at gøre dette ... Men jeg er stumped lige nu ....


Tak,
V
  #4 (permalink)  
Old 08-31-2007
ahmedwaseem2000 ahmedwaseem2000 is offline
Registreret Bruger
  
 

Join Date: Aug 2005
Beliggenhed: Bangalore
Posts: 219
Kunne du sende nogle eksempeldata af input og output, så vi kan være mere klar over kravet.
  #5 (permalink)  
Old 09-03-2007
mvijayv mvijayv is offline
Registreret Bruger
  
 

Join Date: Jan 2007
Stillinger: 16
12123 | 12345678
42142 | 23442253
52315 | 32250205
....
....
...
....
....
omkring 50 millioner

Nu vil jeg tilfældigt vælge journaler og ændre værdien i den anden kolonne

For eksempel hvis jeg vælger den anden record tilfældigt. Jeg vil ændre 2. kolonne til en tilfældig værdi:

12123 | 12345678
42142 | 53988989
52315 | 32250205
....
....
...
....
....

samme transaktion 1 million gange, hver gang du skal vælge en anden record tilfældigt.
  #6 (permalink)  
Old 09-03-2007
fazliturk fazliturk is offline
Registreret Bruger
  
 

Join Date: Aug 2007
Stillinger: 45
Jeg prøvede det følgende kode i AIX, i ksh
kode er lang, men der er ingen mens osv.
lad sige din oprindelige fil origfile

Trin 1.

sed s /"|"/" "/ g origfile> tempfile

/ ** Hvis du dont have sed , skal du ændre "|" med blank med someting * /
/ efter denne din oprindelige fil ser sådan her 12123 12345678 * /

grep-n "^ $" tempfile> origfile, rm tempfile

/ * efter denne din oprindelige fil ser sådan her ud;
1 12123 12345678
2 42142 53988989

2. etape.
/ ** producere 1 mio tilfældige tal og gemme til RandNumbersFile ** /

Trin 3.
/ ** producere 1 mio tilfældige tal og gemme til RandRecordsFile ** /
sortere-u RandRecordsFile> tempfile
MV tempfile RandRecordsFile

/ * kan du producere 1 million numre, men hvis du sortere det unically det kan være mindre end 1 mio. skal du være sikker på, at hver enkelt linje i denne sag er unik, ovenstående kommando arrangerer dette * /

Lad "NeededLine \u003d 1.000.000 -` wc-l RandRecordsFile | awk '(print $ 1)' `"

/ * denne linie viser dig, hvor mange nye bøger har du brug efter sortere * /

counter \u003d 0
mens [$ counter-lt $ NeededLine]
gøre
/ ** producere tilfældige RandomRecord (betyder tilfældige tal). jeg mener, skal du tilføje din kode her ** /
grep $ RandomRecord RandomRecordsFile> / dev / null
hvis [$? -ne 0]

echo $ RandomRecord>> RandomRecordsFile
lad "counter \u003d $ counter 1"
fi
gjort
sortere-u RandomRecordsFile> tempfile
indsæt tempfile RandNumbersFile> RandomRecordsFile
rm tempfile

/ ** Efter denne din RandomRecordsFile ser sådan her ud;
1 12345678
27 53988989
første står for registrering num, og den anden rundom område (orig andet felt) ** /

slutte-v1 origfile RandomRecordsFile> tempfile / ** umatchede linjer ** /
slutte-o 1.1,1.2,2.2 origfile RandomRecordsFile>> tempfile / * matchede linjer * /
sortere-u tempfile> origfile / * sortere på field1 * /
/ ** hvis du har brug tilføjer disse linjer
cut-f2, f3 origfile> tempfile
sed s / ""/"|"/ g tempfile> origfile ** /
rm tempfile

så koden;
/ ** producere 1 mio tilfældige tal og gemme til RandNumbersFile ** /
/ ** producere 1 mio tilfældige tal og gemme til RandRecordsFile ** /

cp yourfile origfile
sed s /"|"/" "/ g origfile> tempfile
grep-n "^ $" tempfile> origfile
sortere-u RandRecordsFile> tempfile
MV tempfile RandRecordsFile
Lad "NeededLine \u003d 1.000.000 -` wc-l RandRecordsFile | awk '(print $ 1)' `"
mens [$ counter-lt $ NeededLine]
gøre
/ ** producere tilfældige RandomRecord (betyder tilfældige tal). jeg mener, skal du tilføje din kode her ** /
grep $ RandomRecord RandomRecordsFile> / dev / null
hvis [$? -ne 0]

echo $ RandomRecord>> RandomRecordsFile
lad "counter \u003d $ counter 1"
fi
gjort
sortere-u RandomRecordsFile> tempfile
indsæt tempfile RandNumbersFile> RandomRecordsFile
slutte-v1 origfile RandomRecordsFile> tempfile
slutte-o 1.1,1.2,2.2 origfile RandomRecordsFile
sortere-u tempfile> origfile
rm tempfile

Sidst redigeret af fazliturk; 09-03-2007 på 09:41 AM..
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 07:18 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0