Questo è un po 'più breve, solo 41 caratteri.
,[[->+>+<<]>-------------[>.<[-]]>[-]<<,]
Legge un valore in un [0]. Copia il valore letto in un [1] e un [2] e sottrae 13 da un [1]. Se un [1] è diverso da zero (ovvero non è un CR), inserisce un [2] e cancella un [1]. Quindi cancella un [2] e legge nuovamente in [0] e ripete.
Questo ha il vantaggio aggiunto che - poiché lascia un [0] = 0 ogni volta che legge - dovrebbe supportare macchine virtuali BF che leggono EOF come 0 o considerano EOF come "nessun cambiamento" sono comuni.
Poiché ciò non sostituisce le coppie CRLF con LF ma piuttosto solo le strisce CR, ciò non dipende dall'ipotesi che il file termini con un LF. Il mio test con dos2unix (almeno quello di Cygwin) non indica che i CR soliti vengono mantenuti.
fonte
2009-10-08 23:42:32
+1 da me per chiunque pubblichi un codice di lavoro; ^) – Toad
mi pagherai :) –
ho accettato la prima risposta di lavoro ma chi messaggi un (diverso, ovviamente) programma di lavoro ottiene ancora voti positivi. –