Re: maledetti a capo!!

2002-05-22 Per discussione /dev/null
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!!

2002-05-22 Per discussione Thorin Oakenshield
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!!

2002-05-22 Per discussione MaX
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!!

2002-05-22 Per discussione Thorin Oakenshield
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!!

2002-05-22 Per discussione Thorin Oakenshield
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!!

2002-05-22 Per discussione /dev/null
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!!

2002-05-22 Per discussione /dev/null
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!!

2002-05-22 Per discussione MaX
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!!

2002-05-22 Per discussione MaX
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!!

2002-05-22 Per discussione -={Sh~AB}=-
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!!

2002-05-22 Per discussione MaX
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!!

2002-05-22 Per discussione /dev/null
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!!

2002-05-22 Per discussione -={Sh~AB}=-
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!!

2002-05-22 Per discussione Giuseppe Sacco
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!!

2002-05-22 Per discussione -={Sh~AB}=-
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!!

2002-05-22 Per discussione MaX
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]