PDA

Visualizza la versione completa : [BASH] leggere tot linee/byte di un file


Alex'87
09-05-2008, 18:37
Ciao a tutti, vado subito al dunque. Avrei bisogno fare uno script che legge solo un numero limitato di linee (o di byte) da un file.. Cosa posso usare per fare questo? Che comandi potrei usare?

Grazie :)

nifriz
09-05-2008, 18:40
Prova con il comando sed

:ciauz:

GunMan
09-05-2008, 18:46
la domanda un p vaga, se le linee che ti interessano sono all'inizio o alla fine del file, anche head e tail potrebbero fare al caso tuo

:ciauz:

Alex'87
09-05-2008, 21:39
Originariamente inviato da GunMan
la domanda un p vaga, se le linee che ti interessano sono all'inizio o alla fine del file, anche head e tail potrebbero fare al caso tuo

:ciauz:

Praticamente devo creare uno script che deve leggere un file di testo per dividerlo in pezzi di dimensione prefissata. Un po' come fa split (solo che non posso usare split...). Ho provato a leggere con cat/head/tail solo che non posso dirgli di leggere (ad esempio) dalla riga 1 alla 100, dalla 101 alla 201 ecc. Purtroppo per problemi personali non ho potuto seguire tutti le ore di laboratorio (di Sistemi Operativi) e sulle dispense non ho trovato nulla 8(

Intanto grazie :)

Mutato
09-05-2008, 21:54
Usa

sed -n "101,200p" [FILE]

per sapere quante linee ha il file usi wc -l

:ciauz:

Alex'87
10-05-2008, 11:26
Originariamente inviato da Mutato
Usa

sed -n "101,200p" [FILE]

per sapere quante linee ha il file usi wc -l

:ciauz:


Grazie 1000, era proprio quello che cercavo! :unz:

Alex'87
10-05-2008, 16:59
Vi tormento ancora...
Avrei bisogno di fare un'altra cosa, simile a questo che ho gi fatto... Devo leggere un file (sempre file di testo) e dividerlo in file della stessa dimensione in byte (dimensione inserita dall'utente). Ora, 1 byte = 1 carattere giusto? Come posso leggere tot caratteri alla volta da un file? Ho provato a guardare nel man di sed ma non mi pare ci sia qualcosa del genere :(
In pratica dovrei leggere (ad esempio) dal carattere 1 al carattere 10, dall'11 al 20 ecc.

Grazie ancora :)

Alex'87
10-05-2008, 23:19
Risolto con
head -c $B $INPUT | tail -c $CHARACTERS > "$PREFIX$I"

Grazie lo stesso ;)

Loading