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

Re: ^M (e otto!)



On Wed, Jan 30, 2002 at 05:48:43PM +0100, Mauro A. Cremonini wrote:
> cat nomefile | tr '\r' ' ' > nomefile2 
Cosi` pero` aggiungi uno " " in coda a tutte le righe. Meglio:

% tr -s '\r' '\n' < nomefile > nomefile2

cosi` sostituisci i ^M con gli end-of-line. In questo modo ti
troveresti con 2 end-of-line in coda ad ogni riga (cioe` ti trovi
una riga vuota dopo ognuna delle righe originarie). Ma con "-s"
dici a tr di fare "squeeze", cioe` di trasformare una sequenza
di "\n" in un singolo "\n".

Oppure con "-d" (delete):

% tr -d '\r' < nomefile > nomefile2

Comunque in entrambi i casi seghi tutti i ^M, compresi quelli
(eventuali ed improbabili) non a fine riga.

Comunque, viste le cose bizzarre che sono girate, ne metto una
buffa anch'io (in bash):
$ ( IFS="^M" ; while read line junk ; do echo "$line" ; done < nomefile > nomefile2 )
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. :-)

Ciao,
/dev/null



Reply to: