Newsgroup: it.comp.os.linux.sys
Titolo: SED: indicare la riga...

E' possibile indicare QUALE riga sostituire per intero con SED???
Io ho provato cosě (ma non va):
sed 's/\4\/testo nuovo/'
MI aiutate???
Thanx

 sed 's/\4\/testo nuovo/'
Sbagli candeggio:
sed '4s/<pattern>/<pattern>/'
-- 
Pierluigi De Rosa (
tho...@durin.khazad-dum.net
).
<<      LINUX: the choice of a GNU generation     >>
<<   For my real address... ask the Balrog.       >>
* Sostenete la Lega per la Soppressione dei Troll *

 sed '4s/<pattern>/<pattern>/'
OK, domani provo cosě, perň intuisco che gli devi cmq dire COSA sostituire,
giusto? Oppure posso usare anche questa sintassi:
sed '4s/x*/testonuovo/'
???
Insomma: esiste il modo per dirgli "any"???
Ciiao e grazie ancora...

 Insomma: esiste il modo per dirgli "any"???
Beh, mi pare che il manuale parli di "regexp",
come primo pattern, quindi qualcosa come:
sed '4s/.*/nuovo/'
Non sono sicuro a che famiglia di regexp si
riferisca, pero`.
bye,
-- 
piergiorgio

 sed '4s/x*/testonuovo/'
Dovresti provare con .*


! Mi
ricordo di te. E come dimenticarti, del resto? Non sei per caso
quello che dom 02 dic 2001 01:32:15p, su it.comp.os.linux.sys, ha
scritto: 

Per lunga esperienza personale: sono compatibili quasi completamente con 
quelle di Javascript (a parte qualche carattere, come le parentesi tonde 
e quadre, che necessitano di escape per funzionare a dovere), a loro 
volta un subset di quelle del Perl
-- 
Nato nel vizio, morto nel supplizio
Nato nel peccato, ad entrare sia invitato

 sed '4s/x*/testonuovo/'
Puoi fare cosi`:
sed '4s/^.*/blabla/'
Henryx
-- 
echo '16i[q]sa[ln0=aln100%Pln100/snlbx]sb20293A2058554E494Csnlbxq'|dc


PERFETTO! Grazie.. cosě ho raggiunto parte del mio scopo.
Infatti ora la cosa si complica un po', perchč la riga di comando del "sed"
si trova all'interno di un file script in bash.
Se la uso cosě, tutto bene, ma io ho bisogno di usare il valore assegnato ad
una variabile all'interno dello script.
Per meglio intenderci:
-------
#!bin/sh
date='/bin/date -d yesterday +%Y%m%d'
sed '4s/.*/mput $date.html/'
-------
Mi capite??? Mi potete aiutare???
Grazie ancora.

 Mi capite??? Mi potete aiutare???
Io direi qualcosa come
date='.....'
echo 4s/.*/mput $date.html > date.sed
sed -f date.sed ...
Insomma lo scrivi in un file temporaneo e poi usi quello come comando
di sed.
Davide

 Mi capite??? Mi potete aiutare???
No...
Pero` forse ti posso aiutare :-)
Dunque tu vorresti cambiare una certa riga di
uno script con un output di un comando in un
altro script.
Allora un paio di cose, per esempio perche` non 
mettere questo output direttamente nello script?
Ovvero passarlo come parametro o come variabile
ambiente?
Devi proprio proprio modificare lo script?
Altra via:
(head -3 script;echo "mput `/bin/date...`";tail +5 script)
dovrebbe anche funzionare...
Infine:
sed "4s/.\*/mput $MIA_STRINGA/"
potrebbe anche funzionare, nota le diverse
virgolette e l'escape di "*".
L'uso di " invece di ' consente alla shell
di espandere $MIA_STRINGA con il valore corrente.
bye,
-- 
  Piergiorgio Sartor

 
Mi correggo, l'escapre di * potrebbe non servire,
da verificare.
bye,
-- 
  Piergiorgio Sartor

 
sed '4s/.*/testonuovo/'
comunque, la sintassi di sed deriva da quella di "ed",
parente strettissimo di "ex" da cui deriva "vi".
Quindi, quello che funziona in vi al 90% funziona
anche in sed.
Una fonte utilissima di ispirazione per risolvere problemi sed e`:
http://www.unixguide.net/unix/sedoneliner.shtml
un buon manuale:
http://www.cs.hmc.edu/tech_docs/qref/sed.html
ciao, Andrea