![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| Split file di grandi dimensioni e aggiungere intestazione e pie 'di pagina di ogni file | ashish4422 | Shell scripting e di programmazione | 1 | 04-15-2008 07:12 AM |
| Split di un file senza alcun motivo - Spalato, Csplit, Awk | madhunk | UNIX for Dummies Domande & Risposte | 10 | 12-17-2007 12:57 PM |
| dividere il nome del file | rinku | Shell scripting e di programmazione | 1 | 05-28-2007 02:47 AM |
| Serve per dividere il file | getdpg | Shell scripting e di programmazione | 11 | 09-04-2006 04:08 AM |
| Come si divide il file da tag all'interno del file? | spookyrtd99 | Shell scripting e di programmazione | 1 | 07-31-2006 01:50 AM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
Split file utilizzando awk
Sto cercando di leggere un file e dividere il file in più file. Ho bisogno di creare nuovi file con diverse serie di linee di file originale. vale a dire, il primo file di output può contenere 10 linee e 100, secondo le linee e così via. I criteri per ottenere le righe tra due righe che iniziano con alcuni caratteri (variabile)
ad es. Un esempio di file di input DOC100 aaaaaa bbbbbb cccccccc FINE DOC200 ddddddd eeeeeee FINE Ho bisogno di inviare le righe e tra DOC100 FINE per out.1 e tra le linee e la prossima DOC200 FINE per out.2 Ho pensato che potesse farlo usando awk e ho provato il seguente comando, ma non ha funzionato. k \u003d grep DOC $ nomefile | cut-c4-6 awk-v cn \u003d $ k '/ cn DOC $ /, / FINE / (print $ 0)' $ nomefile> $ outfile Can anyone help me su questo? Grazie |
|
||||
|
Grazie zazzybob e Ygor per il vostro aiuto. Ma io vedo qualche problema con ciascuno dei vostri script.
zazzybob di script - Prima di tutto ho un file di dati di lunghezza fissa che ho bisogno di dividere. Lo script crea file separati con il dati ma ignora gli spazi nei campi, significa che concatena i campi lasciando fuori gli spazi in essi. Ygor's script - Il tuo script crea solo un file DOC con il nome di dati tra l'ultimo DOC / FINE. Ma i dati si pone come quello che si trova nel file di input, che è un buon segno. |
|
|||||
|
Non ho letto il po 'di nomi di file come "doc.1" prima. Prova questo, invece ... Codice:
awk '/^DOC/{f="doc."++d} f{print > f} /^END/{close f; f=""}' infile
$ Doc testa -1000000 .* \u003d\u003d> Doc.1 <\u003d\u003d DOC100 aaaaaa bbbbbb cccccccc FINE \u003d\u003d> Doc.2 <\u003d\u003d DOC200 ddddddd eeeeeee FINE |
|
||||
|
zazzybob's script funziona bene ora.
Ygor's script ancora un problema. Essa crea i file separati, ma ora mette le righe che iniziano con DOC & FINE anche nel file di output. Ho solo bisogno di dati tra le linee. Agin Grazie per l'aiuto. |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|