![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
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! |
|
||||
|
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) }'`
|
|
||||
|
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.. |
|
||||
|
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 |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|