The UNIX and Linux Forums  


Go Back   De Unix-en Linux Forum > Top Forums > UNIX voor Dummies Questions & Answers
.
google unix.com



UNIX voor Dummies Questions & Answers Als u niet zeker weet waar je een Unix-of Linux vraag, post het hier. Alle UNIX-en Linux beginners van harte welkom!!

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
hoe een bestand op te splitsen aarif UNIX voor Dummies Questions & Answers 2 03-01-2008 03:36 PM
Split-bestanden met behulp van Csplit savitha UNIX voor Dummies Questions & Answers 7 12-01-2007 11:55
Split-bestand mpang_ Programmeren en Shell Scripting 3 09-12-2006 09:37 PM
Splitsing van een bestand Reza Nazarian UNIX voor Dummies Questions & Answers 1 08-09-2006 07:01
meerdere patroon gesplitst in perl umen Programmeren en Shell Scripting 3 08-01-2006 03:43

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 12-13-2007
madhunk madhunk is offline
Geregistreerde gebruiker
  
 

Join Date: november 2005
Posts: 91
Split een bestand met geen patroon - Split, Csplit, Awk

Ik heb door alle threads in het forum en getest op verschillende dingen. Ik probeer op te splitsen een 3GB bestand in meerdere bestanden. Sommige bestanden zijn zelfs groter dan dit.

Bijvoorbeeld:


Code:
split -l 3000000 filename.txt

Dit is erg traag en het splitst het bestand met 3 miljoen records in elk bestand. Maar ik zou graag het aantal bestanden als parameter en de output van de gebruiker gedefinieerde bestand namen en niet xaa, xab, enzovoort.

Ik ben ook proberen awk en ik weet dat het zal zeer snel en eenvoudig. Ik lees het forum en ze zijn allemaal het opsplitsen van de bestanden op een specifiek patroon en ik vereisen geen patroon.

Geef me uw inbreng op dit ..
  #2 (permalink)  
Old 12-13-2007
Smiling Dragon's Avatar
Lachend Dragon Smiling Dragon is offline Forum Advisor  
Ongeorganiseerd Gebruiker
  
 

Join Date: november 2007
Locatie: Nieuw-Zeeland
Posts: 922
Ik zou hebben gedacht dd zou een meer geschikte keuze voor dit?
  #3 (permalink)  
Old 12-14-2007
madhunk madhunk is offline
Geregistreerde gebruiker
  
 

Join Date: november 2005
Posts: 91
Als u kunt raden een snelle manier zoals awk, dat zou heel erg gewaardeerd. De splitsing toegang tot een hoop tijd.
  #4 (permalink)  
Old 12-14-2007
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Locatie: NM
Berichten: 5.794
Als disk i / o is niet te splitsen "te langzaam", probeer dan awk. Maar je zou moeten overwegen dat een grote I / O-verzoek wachtrij lengte over dit bestandssysteem is een waarschijnlijke kandidaat voor trage splitsing, in plaats van splitsing een slechte performer.
awk versie van splitsen:

Code:
awk ' {
          if(NR<300000) { print $0 > "smallfile1"}
          if (NR>300000 && NR < 600000) { print $0 > "smallfile2" }
          if (NR>60000) {print $0 > "smallfile3" }
       }'  bigfile

  #5 (permalink)  
Old 12-14-2007
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Locatie: Варна, България / Milano, Italia
Berichten: 2.915
Een andere benadering - kunt u meerdere argumenten en de bestandsnamen:


Code:
awk 'FNR == 1 { c = 1 }
{ close(FILENAME c-1)
	print > (FILENAME (!(FNR%30000000) ? ++c : c))
}'  file_1 file_2 ... file_n

of:


Code:
awk 'FNR == 1 { c = 1 }
	      { print > (FILENAME c) }
!FNR%30000000 { close(FILENAME c); ++c }
' file_1 file_2 ... file_n


Gebruik nawk of / usr/xpg4/bin/awk op Solaris.

Laatst gewijzigd door radoulov; op 12.14.2007 08:32 PM..
  #6 (permalink)  
Old 12-17-2007
madhunk madhunk is offline
Geregistreerde gebruiker
  
 

Join Date: november 2005
Posts: 91
Dank u Radoulov ... Toen ik liep uw code, het is te zeggen bestand1, bestand2 en bestand3 is niet gevonden. Het lijkt alsof de code is de veronderstelling dat dat zijn de input-bestanden. Echter, Jim de code werkt prima.

De hele omgeving is op Windows. Maar ik gebruik MKS tool kit en het inroepen van bash shell te voeren awk. Nooit gewerkt op Windows voor en het is niet heel mooi ..
  #7 (permalink)  
Old 12-17-2007
drl's Avatar
DRL drl is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: Apr 2007
Plaats: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 712
Hoi, Jim McNamara.
Citaat:
Oorspronkelijk geplaatst door print "$ lijnen lijnen lezen. \ n"; View Post
Als disk i / o is niet te splitsen "te langzaam", probeer dan awk. Maar je zou moeten overwegen dat een grote I / O-verzoek wachtrij lengte over dit bestandssysteem is een waarschijnlijke kandidaat voor trage splitsing, in plaats van splitsing een slechte performer.
awk versie van splitsen:

Code:
awk ' {
          if(NR<300000) { print $0 > "smallfile1"}
          if (NR>300000 && NR < 600000) { print $0 > "smallfile2" }
          if (NR>60000) {print $0 > "smallfile3" }
       }'  bigfile
Het aantal in het rood lijkt te ontbreken een nul, wat erop wijst dat het laatste deel van het bestand dan 60K (niet 600K) eindigt op smallfile3 ... cheers, DRL
Closed Thread

Bladwijzers

Labels
linux

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 02:01.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0