Newsgroup: it.comp.os.linux.iniziare
Titolo: estrarre una riga alla volta da file di testo

Salve a tutti.
Sto scrivendo uno scriptino che  mi prende un elenco e me lo deve
elaborare inserendo del testo all'inizio e alla fine di ogni riga.
Avrei cioč bisogno (credo) di estrarre una alla volta le righe del
file sorgente e elaborarle per infilarle nel file destinazione.
Come faccio ad elaborare singolarmente ogni riga?
TIA
-- 
Antonio
| Pretendi una risposta immediata dal NG?
| Puoi ottenerla!
| 
http://groups.google.com/advanced_group_search

 TIA
forse qualcosa del tipo
cat fileinput | while read x; do
  echo $x
done
puo fare al caso tuo?
ciao

 elaborare inserendo del testo all'inizio e alla fine di ogni riga.
awk e sed fanno al caso tuo
Ciao
  Andrea
-- 
Sognatore e' un uomo coi piedi saldamente ancorati sulle nuvole

awk e sed fanno al caso tuo
Proprio quello che speravo di non sentire! :-)
TNX!


 Proprio quello che speravo di non sentire! :-)
Perl? ;-)
#v+
	#!/usr/bin/perl -w
	open IN, '<filename'
		or die "Impossibile aprire IN: $!";
	open OUT,'>filename.new'
		or die "Impossibile aprire OUT: $!";
	print OUT 'pre' . $_ . 'post' . "\n" while (chomp <IN>);
	close IN;
	close OUT;
	rename 'filename' , 'filename.bak';
	rename 'filename~', 'filename';
#v-
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://www.radiance.d2g.com/~zefram
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 	rename 'filename~', 'filename';
Ovviamente:
#v+
	rename 'filename.new', 'filename';


 	print OUT 'pre' . $_ . 'post' . "\n" while (chomp <IN>);
Emanuele,
complimenti!
Questa e' proprio una soluzione "elegante": io avrei chompato prima
della concatenazione!
Prendo questa riga e la imprimo nella mente per usi futuri! ;)
Grazie!
Ale

 della concatenazione!
E` solo uno dei mille modi per farlo... :-)
Ciao,
 Emmanuele (TIMTOWTDI).


Perl? ;-)
Beh, con lo  script già fatto il perl può  essere un'ottima scelta, anzi
sai che ti dico? Faccio in perl! ;-)
Comunque qualche  linguaggio di programmazione dovrei  impararlo, ma già
non ho il tempo per il C, che mi serve per motivi di studio, figuriamoci
mettere mano ad altro.
Però avevo pensato  già da molto tempo che invece  di imparare l'AWK per
l'elaborazione di testi mi conveniva imparare direttamente il perl, così
gli faccio fare il lavoro dell'AWK e molto altro ancora. Ma forse non so
bene cosa possono fare quei due linguaggi.
Tu cosa ne pensi?
Ciao.
-- 
Antonio

 bene cosa possono fare quei due linguaggi.
Awk è limitato dal poter lavorare *solo* sui testi e dall'essere di
una lentezza *mostruosa* quando i testi da elaborare sono del tipo:
"Grossi, Brutti e Cattivi"(tm). Il Perl può fare molto di più e, se
anche può sembrare un'eresia, anche molto velocemente[1].
+++
[1] Ultimamente sto lavorando molto con l'accoppiata Perl+XML. Dopo
aver allocato dieci minuti (al massimo), per imparare come funziona
XML::Parser, i risultati sono molto buoni... C'è da dire che Parser
.pm si basa su una libreria in C, ma questa è una cosa del Perl che
mi piace di più... :-)


 Come faccio ad elaborare singolarmente ogni riga?
Soluzione facile: uno script...
cat inFile | while read l; do echo "PRE_${l}_POST"; done > outFile
Certo che per files grossi, questo ci mettera` una vita.
Soluzione efficate:
sed 's/.*/PRE_&_POST/' inFile > outFile
Per un file da 800 linee, la mia stazione prende 2 secondi col loop e 0.183
secondi con sed...
Ciao,
-- 
       Roberto Divia`             Love at first sight is one of the greatest
       =============             labour-saving devices the world has ever seen.
Mailbox: C02110                 CERN-European Organization for Nuclear Research
E-mail: 
Robert...@cern.ch
           CH-1211 GENEVE 23, Switzerland


[1] Non ci posso credere!!! Lo spirito di Serni ormai ti possiede!!!!!!
Ho smembrato la parte che t'ho quotato qui sopra in due, per rispondere
puntualmente, ho premuto F3 (ci ho rimappato par ma non per ottenere la
giustificazione, solo per avere la lunghezza approssimativamente uguale
tra le righe), e il testo risuta ancora perfettamente *giustificato*!!!
Ciao.
-- 
Antonio

 [1] Non ci posso credere!!! Lo spirito di Serni ormai ti possiede!!!!!!
Oddio, dovrò mettere il firewall[1].
Certo, però, che me ne sarei dovuto accorgere...
+++
[1] O le mutande di piombo... ;-)
[2] Come OOP è casinistico, e un po' all'acqua di rose, rispetto a
linguaggi come Python o Ruby o Java. Però il Perl6 dovrebbe essere
già molto meglio.
