Come file diviso in un numero di riga [chiusa]
-
28-09-2019 - |
Domanda
Voglio dividere una linea 400k lungo file di log da un particolare numero di riga.
Per questa domanda, consente di fare di questo un numero arbitrario 300k.
C'è un comando di Linux che mi permette di fare questo ( all'interno dello script )?
Lo so split
mi permette di dividere il file in parti uguali sia per i numeri di dimensioni o di linea ma non è quello che voglio. Voglio il primo 300k in un unico file e l'ultimo 100k nel secondo file.
Qualsiasi aiuto sarebbe apprezzato. Grazie!
Il secondo pensiero questo sarebbe più adatto al sito superutente o serverfault.
Soluzione
file_name=test.log
# set first K lines:
K=1000
# line count (N):
N=$(wc -l < $file_name)
# length of the bottom file:
L=$(( $N - $K ))
# create the top of file:
head -n $K $file_name > top_$file_name
# create bottom of file:
tail -n $L $file_name > bottom_$file_name
Inoltre, ripensandoci, diviso funzionerà nel tuo caso, dal momento che la prima divisione è più grande del secondo. mette Split il saldo del contributo al ultima divisione, in modo
split -l 300000 file_name
stamperà xaa
con 300k linee e xab
con 100k linee, per un ingresso con 400k linee.