webForumDet fria alternativet

Radbryt / regexp

Perl & Ruby

1 svar · 313 visningar · startad av Joakim

Medlem sedan dec. 199982 inlägg
Frågan#1

Hellu,

sitter o irriterar mig lite på en sak, får textfiler med diverse innehåll från olika leverantörer, som sedan behandlas av script jag skrivit och sist läggs in i en gemensam databas.

Irritationen uppstår på grund av radbryt i de olika textfilerna. Min server är ju en linuxburk, och det verkar som vissa av mina leverantörer skapar filerna på windowsmaskiner och att just radbryten förvirrar mina script.

I vissa filer matchar varken $ eller \n radbrytningar, så det måste vara något annat.

Kan jag enkelt konvertera filen till att använda linuxradbrytningar eller kan jag skriva om mina regexp för att matcha även dessa knasiga radbrytningar. För att göra mina script så exakta som möjligt behöver jag matcha radbrytningar också, för att skriva rätt data till min databas.

Några idéer?

Medlem sedan juni 20004 308 inlägg
#2

Om du läser in innehållet i filen till $data så borde du kunna göra så här för att ersätta Mac (cr), Win (cr/lf) till Unix (lf):

$cr=chr(13); $lf=chr(10);
$data =~ s/$cr$lf?/$lf/g;
259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)