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

[PEDANTIC] Re: ^M (e otto!)



On Thu, Jan 31, 2002 at 12:58:37PM +0100, Thorin Oakenshield wrote:
> > Nota che - come quella di Thorin - non fa la cosa giusta se trova
> > un "^M" non a fine riga. Quella di Thorin si puo` sistemare
> > ("s/^M$//" anziche' "s/^M//"), mentre con la mia e` un po' piu`
> > laborioso e noioso. :-)
> Prego? sed e' un editor stream per cui processa l'intera linea fino a '$'
Come ammetti tu stesso qualche riga piu` sotto, senza "g" il tuo
sostituisce (cancella) solo il primo ^M.

> Invece come hai fatto tu leva _SOLO_ quelli a fine riga..
Che e` il comportamento _voluto_: esattamente cio` che fa
dos2unix.

> al massimo sarebbe potuto essere 's/^M//g' giusto per dovere di
> precisione, e comunque sia facendo in quel modo a me li ha
> sempre levati tutti, posso assicurartelo perche' lo uso non
> dico tutti i giorni ma siamo giu' di li'.
Nelle discipline scientifiche, come l'informatica, c'e` una bella
differenza tra "funziona nella maggior parte dei casi" e
"non puo` non funzionare".

Inoltre, se proprio vuoi cercare il pelo nell'uovo, per
togliere *tutti* i ^M, il modo migliore e` usare tr, che
1) e` piu` veloce (GNU sed e` bello ma orribilmente lento);
2) dovendo leggere un carattere alla volta e non un'intera "riga"
   non puo` trovarsi nella condizione di dovere malloc()are piu`
   della memoria disponibile.

E non t'incazzare tutte le volte, che e` evidente che si
chiaccherava in modo semiserio.

Scusate la pedanteria,
/dev/null



Reply to: