The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > UNIX for dummyer Spørgsmål & svar
.
google unix.com



UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen!

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Split filer via Csplit savitha UNIX for dummyer Spørgsmål & svar 7 12-01-2007 11:55 AM
Split en fil i 2 filer dummy_needhelp Shell Programmering og Scripting 7 11-04-2007 07:36 PM
samlede antal filer, der er "AAA" i filer hvis navne er File * _bbb * sudheshnaiyer UNIX for dummyer Spørgsmål & svar 1 08-16-2007 02:34 PM
Opdele en fil i 2 eller flere filer Bobo UNIX for dummyer Spørgsmål & svar 4 01-16-2006 05:15 PM
awk kommando til delt i 2 filer m_subra_mani Shell Programmering og Scripting 3 12-13-2005 05:13 PM

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 05-13-2008
Migrainegirl Migrainegirl is offline
Registreret Bruger
  
 

Join Date: May 2008
Stillinger: 3
delt filer til angivne antal output-filer

Hej alle,

Jeg har nogle store tekstfiler, at jeg skal opdeles i et bestemt antal filer af samme størrelse. Så vidt jeg ved (og jeg ved ikke rigtigt, at meget ) Den opdelte kun kommandoen kan du angive antallet af linjer eller bytes. Filerne er alle af forskellig størrelse, så antallet af linjer er ligeledes forskellige.
Jeg bruger følgende kode for at se, hvor mange linjer hvert output-fil skal være (1 / 50 af det originale dokument):

y \u003d `wc | awk '(print $ x/50)' | awk-F. '(if ($ 2> \u003d 1) (print $ 1 +1) else (print $ 1))' `
echo $ y

Problemet er, at jeg ikke kan bruge denne variabel $ y som input til opdelingen kommando som denne:

split $ x-d-l $ y split / $ x

Det hænger simpelthen ikke arbejde. Er der nogen kender en måde at videregive værdi af $ y variablen i split kommando? Eller gør nogen har en bedre måde at løse hele problemet?

Thanks in advance!
  #2 (permalink)  
Old 05-13-2008
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
Det er egentlig ikke klart, hvorfor du ikke kan bruge den variable. Den måde, det er nu, tror jeg ikke, det indeholder en nyttig værdi (hvad betyder det echo print for dig?), men om fastsættelse af de scripts, så virker det lyder som den bedste plan, medmindre du kan forklare, hvorfor det "ganske enkelt ikke".

Hvis man antager, $ x er navnet på den fil, du er ved at splitte, prøve noget som dette i stedet.

Code:
y=`wc -l < $x | awk '{ print 1+int($1/50) }'`
Jeg sætter i tilføjelsen af en på den teori, at dette skulle gøre noget vagt nyttig selv med filer, som er for små, med en svag tendens til at gøre den sidste fil i rækken mindre end de andre. (Måske dividere med 49 i stedet for at kompensere?)
  #3 (permalink)  
Old 05-13-2008
Migrainegirl Migrainegirl is offline
Registreret Bruger
  
 

Join Date: May 2008
Stillinger: 3
Ekkoet giver mig et nummer, som det er meningen at gøre.
Tilføjelsen er brugt til at runde op numre: 231,2 bliver 232, men 231,0 ophold 231.

Jeg prøvede det igen med $ x variabel udtrykkeligt defineret, og så det virkede. Så det problem synes at være $ x. (sorry, jeg fik ikke meget søvn i nat ) Dette ændrer mit spørgsmål:
Hvis jeg vil bruge mit script med den oprindelige tekst fil som input (sådan her: sh test.sh <file.txt), hvordan kan jeg opfordre den originale fil inde i scriptet?
Jeg har naturligvis tænkt, at de $ x i 'split $ x-d-l $ y split / $ x' vil blive erstattet med 'file.txt', men det er ikke.

Senest redigeret af Migrainegirl; 05-13-2008 kl 07:53 AM..
  #4 (permalink)  
Old 05-13-2008
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
Den positionelle parametre er i $ 1 $ 2 $ 3 osv., men hvis du er påberåber scriptet med omdirigering, der ikke er positionelle parameter, og ingen filnavn, bare standard input.

Code:
vnix$ ./myscript file.txt oops   #  inside myscript, $1 is "file.txt" and $2 is "oops"
vnix$ ./myscript   # inside myscript, no file name is known; input is from standard input (terminal)
vnix$ ./myscript <file.txt   # again, inside myscript, no file name is known; input is redirected to come from file.txt

Sidst redigeret af æra; 05-13-2008 på 08:02 AM.. Årsag: Add oplysende (?) Eksempel
  #5 (permalink)  
Old 05-13-2008
Migrainegirl Migrainegirl is offline
Registreret Bruger
  
 

Join Date: May 2008
Stillinger: 3
Tak!
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 11:17 AM.


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