Re: maledetti a capo!!
On Wed, May 22, 2002 at 09:54:43PM +0200, MaX wrote: > FUNZIONA!! > > grazie, solo una cosina potresti spiegare perché funziona? > penso che siano in molti in questa lista che non capiscono questo passaggio. Ma come, l'ho appena spiegato! Comunque, riga per riga, il significato e`: #!/bin/sed -f dice al kernel che deve lanciare sed e dargli in pasto (come argomento il contenuto del file, similmente a #!/bin/bash eccetera) /^".*[^"]$/{ se la riga inizia con " e non finisce con " allora: N leggi anche la riga successiva (a questo punto sed ha in "pattern space" le due righe separate dal newline). s/\n/\\n/ sostituisci il newline con \n } fine del "ciclo" Ciao, /dev/null -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
On Wed, May 22, 2002 at 12:02:03PM +0200, MaX wrote: > i due esempi di prima non funzionano (loop infinito)... > > > non ho caoito invece come si applica questo di /dev/null > > cioé, creo uno script ciamato prova e ci copio: Oppure passi in pipe il cat del file a sed.. > eppoi? e che seinificato ha la "N"? Fa il join di 2 linee adiacenti. -- Pierluigi De Rosa ([EMAIL PROTECTED]). << LINUX: the choice of a GNU generation >> << For my real address... ask the Balrog. >> * Sostenete la Lega per la Soppressione dei Troll * -- Pierluigi De Rosa ([EMAIL PROTECTED]). << LINUX: the choice of a GNU generation >> << For my real address... ask the Balrog. >> * Sostenete la Lega per la Soppressione dei Troll * -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
FUNZIONA!! grazie, solo una cosina potresti spiegare perché funziona? penso che siano in molti in questa lista che non capiscono questo passaggio. ciao, MaX Il giorno Wed, 22 May 2002 13:54:10 +0200 /dev/null <[EMAIL PROTECTED]> ha scritto: > > msgid "(You can add your own categories to the list\nor remove categories > you've added.)" > > msgstr "(Vous pouvez soit ajouter vos propres catégories,\nsoit supprimer > certaines de ces dernières.)" > Quindi se le righe NON iniziano con " puoi fare cosi`: > #!/bin/sed -f > /".*[^"]$/{ > N > s/\n/\\n/ > } > > cioe`, nella RE, non chiedi una riga che inizi con " e non finisca con " > ma solo che contenga un " e non finisca con un " . -- Massimo Biffi LocTeam Barcelona - Spain Debian/Sid on PowerBook Apple G3 Home: www.maximumdebian.org -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
On Wed, May 22, 2002 at 12:02:03PM +0200, MaX wrote: > i due esempi di prima non funzionano (loop infinito)... > > > non ho caoito invece come si applica questo di /dev/null > > cioé, creo uno script ciamato prova e ci copio: Oppure passi in pipe il cat del file a sed.. > eppoi? e che seinificato ha la "N"? Fa il join di 2 linee adiacenti. -- Pierluigi De Rosa ([EMAIL PROTECTED]). << LINUX: the choice of a GNU generation >> << For my real address... ask the Balrog. >> * Sostenete la Lega per la Soppressione dei Troll * -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
On Wed, May 22, 2002 at 11:16:48AM +0200, -={Sh~AB}=- wrote: > no cosi' inserisce ^ nella nuova linea : > > #commento1 [..] > > > > ma in questo modo togli tutti i commenti. > > ops... > > for i in `cat nomefile`;do >str=`echo $i|grep ^#` >if [ "$str" == "" ];then > echo $i|tr '\n' "@" |sed 's/@/\\n/g' >>nuovofile >else > echo $str >>nomefile >fi > done [EMAIL PROTECTED] /tmp]$ cat TEST #commento1 linea 1 linea 2 #commento# [EMAIL PROTECTED] /tmp]$ cat TEST | sed '/linea 1/{ > N > s/\n/\\n/ > }' #commento1 linea 1\nlinea 2 #commento# -- Pierluigi De Rosa ([EMAIL PROTECTED]). << LINUX: the choice of a GNU generation >> << For my real address... ask the Balrog. >> * Sostenete la Lega per la Soppressione dei Troll * -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
On Wed, May 22, 2002 at 09:19:36PM +0200, MaX wrote: > meglio ancora :) > > il file in questione é una specie di .po > formato cosí: > > #TextItem> > #Description> > #Position>28#/Position> > #TranslationSet> > > msgid "(You can add your own categories to the list > or remove categories you've added.)" > msgstr "(Vous pouvez soit ajouter vos propres catégories, > soit supprimer certaines de ces dernières.)" > > #/TranslationSet> > #/TextItem> > > #TextItem> > #Description> > #Position>30#/Position> > #TranslationSet> > > (non ti preoccupare dei problemi di conversione dei caratteri accentati) > > dovrebbe risultare cosí: > > #TextItem> > #Description> > #Position>28#/Position> > #TranslationSet> > > msgid "(You can add your own categories to the list\nor remove categories > you've added.)" > msgstr "(Vous pouvez soit ajouter vos propres catégories,\nsoit supprimer > certaines de ces dernières.)" Quindi se le righe NON iniziano con " puoi fare cosi`: #!/bin/sed -f /".*[^"]$/{ N s/\n/\\n/ } cioe`, nella RE, non chiedi una riga che inizi con " e non finisca con " ma solo che contenga un " e non finisca con un " . :) /dev/null -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
On Wed, May 22, 2002 at 08:56:17PM +0200, MaX wrote: > Il giorno Wed, 22 May 2002 12:35:01 +0200 > > > #commento > > linea1\nlinea2\n > > #commento > > > > non lo volevi cosi ? > > scusa, il credevo un loop infinito a causa delle dimensioni del file.. > > il tuo scrip funziona, ma non fa ancora quello che mi serve, infatti prova > con questo: > > -- > #commento > > "linea1 > linea2" > > #commento > > "linea 3 abcdef" > > #commento > > > ...dovrebbe risultare cosí: > > -- > #commento > > "linea1\nlinea2" > > #commento > > "linea 3 abcdef" > > #commento > > > l'unica differenza é il "\n" tra la linea 1 e 2, e non ci devono essere altre > differenze > altrimenti puoi non funziona in una altra tool. Allora, ricapitoliamo. A te serve che le righe che iniziano con un " e NON finiscono con un " vengano fatte seguire dalle successive? Allora: #!/bin/sed -f /^".*[^"]$/{ N s/\n/\\n/ } Che vuol dire: /^".*[^"]$/{ se la riga inizia con " e non finisce con " allora: N leggi anche la riga successiva (a questo punto sed ha in "pattern space" le due righe separate dal newline). s/\n/\\n/ sostituisci il newline con \n } fine del "ciclo" (per usarlo, lo metti in un file, diciamo /usr/local/bin/pippo , e poi lanci /usr/local/bin/pippo nome-del-file (oppure gli passi il file in pipe, proprio come con sed)). Nota: questo non funziona se hai # commmento "prima seconda e terza riga" # eccetera Pero` per farlo funzionare servono altre info: sono ammesse sequenze tipo # commento pippo "righe tra virgolette" # commento gino giggi # eccetera Ciao, /dev/null -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
meglio ancora :) il file in questione é una specie di .po formato cosí: #TextItem> #Description> #Position>28#/Position> #TranslationSet> msgid "(You can add your own categories to the list or remove categories you've added.)" msgstr "(Vous pouvez soit ajouter vos propres catégories, soit supprimer certaines de ces dernières.)" #/TranslationSet> #/TextItem> #TextItem> #Description> #Position>30#/Position> #TranslationSet> (non ti preoccupare dei problemi di conversione dei caratteri accentati) dovrebbe risultare cosí: #TextItem> #Description> #Position>28#/Position> #TranslationSet> msgid "(You can add your own categories to the list\nor remove categories you've added.)" msgstr "(Vous pouvez soit ajouter vos propres catégories,\nsoit supprimer certaines de ces dernières.)" #/TranslationSet> #/TextItem> #TextItem> #Description> #Position>30#/Position> #TranslationSet> ...la vedo dura... :( ciao, MaX Il giorno Wed, 22 May 2002 20:56:17 +0200 MaX <[EMAIL PROTECTED]> ha scritto: > M Il giorno Wed, 22 May 2002 12:35:01 +0200 > M > M > #commento > M > linea1\nlinea2\n > M > #commento > M > > M > non lo volevi cosi ? > M > M scusa, il credevo un loop infinito a causa delle dimensioni del file.. > M > M il tuo scrip funziona, ma non fa ancora quello che mi serve, infatti prova > con questo: > M > M -- > M #commento > M > M "linea1 > M linea2" > M > M #commento > M > M "linea 3 abcdef" > M > M #commento > M > M > M ...dovrebbe risultare cosí: > M > M -- > M #commento > M > M "linea1\nlinea2" > M > M #commento > M > M "linea 3 abcdef" > M > M #commento > M > M > M l'unica differenza é il "\n" tra la linea 1 e 2, e non ci devono essere > altre differenze > M altrimenti puoi non funziona in una altra tool. > M > M -- > M Massimo Biffi LocTeam Barcelona - Spain > M Debian/Sid on PowerBook Apple G3 > M Home: www.maximumdebian.org > M > M > M -- > M To UNSUBSCRIBE, email to [EMAIL PROTECTED] > M with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] > M > M -- Massimo Biffi LocTeam Barcelona - Spain Debian/Sid on PowerBook Apple G3 Home: www.maximumdebian.org -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
Il giorno Wed, 22 May 2002 12:35:01 +0200 > #commento > linea1\nlinea2\n > #commento > > non lo volevi cosi ? scusa, il credevo un loop infinito a causa delle dimensioni del file.. il tuo scrip funziona, ma non fa ancora quello che mi serve, infatti prova con questo: -- #commento "linea1 linea2" #commento "linea 3 abcdef" #commento ...dovrebbe risultare cosí: -- #commento "linea1\nlinea2" #commento "linea 3 abcdef" #commento l'unica differenza é il "\n" tra la linea 1 e 2, e non ci devono essere altre differenze altrimenti puoi non funziona in una altra tool. -- Massimo Biffi LocTeam Barcelona - Spain Debian/Sid on PowerBook Apple G3 Home: www.maximumdebian.org -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
loop infinito ??? bash-2.03$ cat file_a_caso #commento linea1 linea2 #commento bash-2.03$ for i in `cat file_a_caso`;do str=`echo $i|grep ^#`;if [ "$str" == "" ];then echo $i|tr '\n' "@"|sed 's/@/\\n/g' >>nuovofile; else echo -e '\n'$str >>nuovofile;fi;done bash-2.03$ cat nuovofile #commento linea1\nlinea2\n #commento non lo volevi cosi ? quello di /dev/null sarei molto felice di capirlo anche io ;) On Wed, May 22, 2002 at 12:02:03PM +0200, MaX wrote: > Il giorno Wed, 22 May 2002 11:28:28 +0200 > /dev/null <[EMAIL PROTECTED]> ha scritto: > > > > Una possibile soluzione, se il problema e` esattamente come lo esponi, > > puo` essere uno scriptino sed come questo: > > #!/bin/sed -f > > /^"/{ > > N > > s/\n/\\n/ > > } > > i due esempi di prima non funzionano (loop infinito)... > > > non ho caoito invece come si applica questo di /dev/null > > cioé, creo uno script ciamato prova e ci copio: > > #!/bin/sed -f > /^"/{ > N > s/\n/\\n/ > } > > eppoi? e che seinificato ha la "N"? > > ciao, > MaX > > -- > Massimo Biffi LocTeam Barcelona - Spain > Debian/Sid on PowerBook Apple G3 > Home: www.maximumdebian.org > > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] -- == -={Luigi Montella Velluti [personal site:http://shab.netdyna.it]}=- Dynamica Software Factory via G.Sidoli,7 20129 - Milano -Italy- WEB: http://www.dynamica.it Tel:+39 2 70124402 Fax: +39 2 70120357 == -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
Il giorno Wed, 22 May 2002 11:28:28 +0200 /dev/null <[EMAIL PROTECTED]> ha scritto: > Una possibile soluzione, se il problema e` esattamente come lo esponi, > puo` essere uno scriptino sed come questo: > #!/bin/sed -f > /^"/{ > N > s/\n/\\n/ > } i due esempi di prima non funzionano (loop infinito)... non ho caoito invece come si applica questo di /dev/null cioé, creo uno script ciamato prova e ci copio: #!/bin/sed -f /^"/{ N s/\n/\\n/ } eppoi? e che seinificato ha la "N"? ciao, MaX -- Massimo Biffi LocTeam Barcelona - Spain Debian/Sid on PowerBook Apple G3 Home: www.maximumdebian.org -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
On Wed, May 22, 2002 at 10:52:48AM +0200, Giuseppe Sacco wrote: > Il Wed, May 22, 2002 at 10:30:11AM +0200, -={Sh~AB}=- ha scritto: > > cat nomefile|grep -v ^# |tr '\n' "@" |sed 's/@/\\n/g' > > > > c'e' un doppio passaggio, probabilemnte si puo' fare di meglio. > > Infatti al posto della @ dovresti utilizzare un carattere che sei > > sicuro non sia presente nel file. > > Al momento non mi viene in mente nullla di meglio ;( > > Per inserire il newline da riga di comando basta premere il carattere > control-v seguito da invio. Apparirà sullo schermo un bel ^M . > > Probabilmente quello che cercavi di fare è: > grep -v ^# nomefile | tr '\n' ^M >nuovofile Veramente sono sbagliati tutti e due gli esempi. Una possibile soluzione, se il problema e` esattamente come lo esponi, puo` essere uno scriptino sed come questo: #!/bin/sed -f /^"/{ N s/\n/\\n/ } Ciao, /dev/null -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
On Wed, May 22, 2002 at 10:52:48AM +0200, Giuseppe Sacco wrote: > Il Wed, May 22, 2002 at 10:30:11AM +0200, -={Sh~AB}=- ha scritto: > > cat nomefile|grep -v ^# |tr '\n' "@" |sed 's/@/\\n/g' > > > > c'e' un doppio passaggio, probabilemnte si puo' fare di meglio. > > Infatti al posto della @ dovresti utilizzare un carattere che sei > > sicuro non sia presente nel file. > > Al momento non mi viene in mente nullla di meglio ;( > > Per inserire il newline da riga di comando basta premere il carattere > control-v seguito da invio. Apparirà sullo schermo un bel ^M . > > Probabilmente quello che cercavi di fare è: > grep -v ^# nomefile | tr '\n' ^M >nuovofile no cosi' inserisce ^ nella nuova linea : #commento1 linea 1 linea 2 #commento# deve venir fuori questo: #commento1 linea1\nlinea2 #commento dove a quel che ho capito \n deve essere proprio scritto cosi'!!! > > ma in questo modo togli tutti i commenti. ops... for i in `cat nomefile`;do str=`echo $i|grep ^#` if [ "$str" == "" ];then echo $i|tr '\n' "@" |sed 's/@/\\n/g' >>nuovofile else echo $str >>nomefile fi done > > Ciao, > Giuseppe > > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] -- == -={Luigi Montella Velluti [personal site:http://shab.netdyna.it]}=- Dynamica Software Factory via G.Sidoli,7 20129 - Milano -Italy- WEB: http://www.dynamica.it Tel:+39 2 70124402 Fax: +39 2 70120357 == -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
Il Wed, May 22, 2002 at 10:30:11AM +0200, -={Sh~AB}=- ha scritto: > cat nomefile|grep -v ^# |tr '\n' "@" |sed 's/@/\\n/g' > > c'e' un doppio passaggio, probabilemnte si puo' fare di meglio. > Infatti al posto della @ dovresti utilizzare un carattere che sei > sicuro non sia presente nel file. > Al momento non mi viene in mente nullla di meglio ;( Per inserire il newline da riga di comando basta premere il carattere control-v seguito da invio. Apparirà sullo schermo un bel ^M . Probabilmente quello che cercavi di fare è: grep -v ^# nomefile | tr '\n' ^M >nuovofile ma in questo modo togli tutti i commenti. Ciao, Giuseppe -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: maledetti a capo!!
cat nomefile|grep -v ^# |tr '\n' "@" |sed 's/@/\\n/g' c'e' un doppio passaggio, probabilemnte si puo' fare di meglio. Infatti al posto della @ dovresti utilizzare un carattere che sei sicuro non sia presente nel file. Al momento non mi viene in mente nullla di meglio ;( On Wed, May 22, 2002 at 10:05:27AM +0200, MaX wrote: > ciao a tutti, > > ho un problema con la sostituzione di un carattere in alcuni file: > > #linea di commento 1 > #linea di commento2 > "questra frase contiene un a capo > qui che voglio togliere" > #linea di commento3 > #linea di commento4 > > io vorrei ottenere > > #linea di commento 1 > #linea di commento2 > "questra frase contiene un a capo\nqui che voglio togliere" > #linea di commento3 > #linea di commento4 > > praticamente tutti i campi delimitati da carattere " che contengono un a > capo, > questi devono essere convertiti in \n, conservando ovviamente tutti i commenti > > questo cambio vorrei farlo possibilmente con sed o awk per motivi di > compatibilitá > (in questi sistemi non c' é il Perl o python) > > ciao, > MaX > -- > Massimo Biffi LocTeam Barcelona - Spain > Debian/Sid on PowerBook Apple G3 > Home: www.maximumdebian.org > > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] -- == -={Luigi Montella Velluti [personal site:http://shab.netdyna.it]}=- Dynamica Software Factory via G.Sidoli,7 20129 - Milano -Italy- WEB: http://www.dynamica.it Tel:+39 2 70124402 Fax: +39 2 70120357 == -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
maledetti a capo!!
ciao a tutti, ho un problema con la sostituzione di un carattere in alcuni file: #linea di commento 1 #linea di commento2 "questra frase contiene un a capo qui che voglio togliere" #linea di commento3 #linea di commento4 io vorrei ottenere #linea di commento 1 #linea di commento2 "questra frase contiene un a capo\nqui che voglio togliere" #linea di commento3 #linea di commento4 praticamente tutti i campi delimitati da carattere " che contengono un a capo, questi devono essere convertiti in \n, conservando ovviamente tutti i commenti questo cambio vorrei farlo possibilmente con sed o awk per motivi di compatibilitá (in questi sistemi non c' é il Perl o python) ciao, MaX -- Massimo Biffi LocTeam Barcelona - Spain Debian/Sid on PowerBook Apple G3 Home: www.maximumdebian.org -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]