2015-10-01 11 views
6

Sto provando a dividere un grosso file basato su un modello. Sto usando il comando awk per questo. Dopo aver creato un certo numero di file dà errore: Troppi file aperti.Comando di script di shell di Linux awk troppi file aperti

comando è:

awk '/pattern here/{i++}{print > "file"i}' /input file 

qualcuno può dirmi come chiudere questi file? Ho provato a seguire ma dà errore.

awk '/pattern here/{i++}{print > "file"i}' /input file | close("file"i) 

Grazie.

+0

È necessario eseguire il 'close' ** a ** awk non in un tubo sull'uscita. Potresti anche voler esaminare 'csplit'. –

+0

Possibile duplicato di [Divide file molto grandi in piccoli seguendo il modello (bash)] (http://stackoverflow.com/questions/32228798/divide-very-large-file-into-small-ones-following-pattern-bash) –

risposta

4

Prima di avviare il file successivo, chiudere la precedente:

awk '/pattern here/{close("file"i); i++}{print > "file"i}' InputFile 
+0

Grazie ... chiudere il file prima di iniziare il prossimo file ha funzionato ... –

Problemi correlati