[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [riminilug-general] Risposta tardiva a: "Mi serve uno script"



Ivan Tarozzi scrisse in data 11/09/2012 14:41:
> [...]
> mi suona un po' strano perchè solitamente (anche da man page) il
> carattere usato nel comando di sostituzione è / e non |:
>     sed 's/"</,/g;s/"//g;s/>//g'
> qualcuno sa darmi una spiegazione del perchè funzioni ugualmente e
> quindi perchè i 2 caratteri siano equivalenti?
con sed puoi usare qualunque carattere come separatore; normalmente si
usa lo / ma ad esempio se in pasto a sed dai un path allora ti conviene
cambiare separatore piuttosto che riempire di \ la tua stringa. Non so
dove l'ho letto la prima volta ma è così. Ho cercato sul man di sed ma
non c'è (in effetti il manuale di sed è piuttosto inutile). Qui(*)
qualcosa c'è:
>
> Le /funzioni di sostituzione/ permettono di ricercare contesti e sono
> specificate nella forma:
>
> s//schema_espressione_regolare///stringa_di_rimpiazzo///flag/
>
> e possono essere quotate con caratteri di quoting singoli (') se sono
> specificate opzioni o funzioni aggiuntive. Questi schemi sono identici
> agli indirizzi di contesto, eccetto che, mentre questi sono
> normalmente chiusi tra slashe (/), nelle funzioni sono permessi alcuni
> normali caratteri per specificare i delimitatori, oltre a newline e
> spazio. La stringa di rimpiazzo non è uno schema di espressione
> regolare; qui i caratteri non hanno significati speciali, fatta
> eccezione di:
>
> /&/ 	che sostituisce tale simbolo con la stringa
> /schema_espressione_regolare/
> /\/n// 	sostituisce tale simbolo con l'/n-esima/ stringa
> corrispondente a /schema_espressione_regolare/ chiusa tra una coppia
> di '\(','\)'
>
> Questi caratteri speciali possono essere messi in escape con il
> carattere backslash (\) per rimuovere il loro significato speciale.
>

Ciao

Paolo


(*)
http://www.freebsd.org/doc/it/books/unix-introduction/text-processing-commands.html




---------------------------------------------------------------------
Per cancellarsi, scrivi a: riminilug-general-unsubscribe@xxxxxxxxxxxx
Se vuoi conoscere altri comandi, scrivi a: riminilug-general-help@xxxxxxxxxxxx