Kopiera innehåll ur alltför stor textfil?

Allt om hård- och mjukvara samt övriga it-relaterade diskussioner.

 Moderatorer: Alien, atoms

Re: Kopiera innehåll ur alltför stor textfil?

Inläggav Miche » 2011-04-03 12:27:15

Bjäbbmonstret skrev:Nej filen innehöll inga radbrytningar från början.

Är du säker på det?

Det finns radbrytningar som vissa textredigerare missar eftersom de frångår standarden för radbrytningar i det system man använder.

Vanligt är CR+LF (Carriage Return och Line Feed), en del system har bara CR och en del bara LF...

Leta rätt på en textredigerare som har konfigurerbar radbrytning eller använd en HEX-editor där man direkt ser om det finns CR (hexkod 0D) eller LF (hexkod 0A).
Miche
 
Inlägg: 28797
Anslöt: 2009-01-08
Ort: Karlholmsbruk

Re: Kopiera innehåll ur alltför stor textfil?

Inläggav Kvasir » 2011-04-03 13:10:29

Miche skrev:
Bjäbbmonstret skrev:Nej filen innehöll inga radbrytningar från början.

Är du säker på det?

Det finns radbrytningar som vissa textredigerare missar eftersom de frångår standarden för radbrytningar i det system man använder.

Vanligt är CR+LF (Carriage Return och Line Feed), en del system har bara CR och en del bara LF...

Leta rätt på en textredigerare som har konfigurerbar radbrytning eller använd en HEX-editor där man direkt ser om det finns CR (hexkod 0D) eller LF (hexkod 0A).


Bra poäng, Miche.

Om jag minns rätt är standarden följande:
- Unix/Linux: CR+LF
- Windows: CR
- Mac: LF

Oklart dock om Mac håller fast vid den standarden eftersom det numera är Unix under huven. Oavsett Mac följer "gammal Macstandard" eller Unixstandard, så blir det fel om det är en Windowsfil det handlar om, eftersom den normalt inte innehåller några LF vid radbrytningarna.

Prova om någon av de textredigerare du använder klarar att söka på och byta ut kontrolltecken. I så fall går det "enkelt" att ändra de radslut som eventuellt redan finns så de blir rätt för din dator.

Hur stor är filen, förresten?
Kvasir
 
Inlägg: 14628
Anslöt: 2007-11-04
Ort: Vilse någonstans mellan coNP och P/poly

Re: Kopiera innehåll ur alltför stor textfil?

Inläggav nallen » 2011-04-03 18:38:45

Kvasir skrev:Om jag minns rätt är standarden följande:
- Unix/Linux: CR+LF
- Windows: CR
- Mac: LF

Du minns tyvärr fel.
Windows är CR+LF, Unix (oftast) CR och det finns exempel på system som paddar varje record med NUL till 80 teckens bredd och alltså inte har några radbrytningar per se, gamla stordator-OS comes to mind :)
nallen
 
Inlägg: 19701
Anslöt: 2006-08-27
Ort: Vid Skogen

Re: Kopiera innehåll ur alltför stor textfil?

Inläggav Inger » 2011-05-14 11:14:17

Går det att söka upp artiklarna på nätet och kopiera dem därifrån?

Tips för att undvika liknande problem i framtiden:

Om jag vill spara något som plain text så klistrar jag in det i ett tomt mejl och ber mejlprogrammet avformatera. Om jag sedan vill ha det lätt tillgängligt sparar jag det som utkast i mejlprogrammet.
Inger
Inaktiv
 
Inlägg: 17333
Anslöt: 2006-06-30

Re: Kopiera innehåll ur alltför stor textfil?

Inläggav Miche » 2011-05-14 16:10:25

Inger skrev:Om jag vill spara något som plain text så klistrar jag in det i ett tomt mejl och ber mejlprogrammet avformatera. Om jag sedan vill ha det lätt tillgängligt sparar jag det som utkast i mejlprogrammet.

Även Notpad/Anteckningar funkar för ändamålet, men jag vet inte hur det är i Mac-världen...
Miche
 
Inlägg: 28797
Anslöt: 2009-01-08
Ort: Karlholmsbruk

Re: Kopiera innehåll ur alltför stor textfil?

Inläggav Sammelsurium » 2011-05-14 17:45:49

Jag har ingen Mac här hemma (dock på jobbet) så jag kan inte testa, men eftersom det finns en UNIX-kommandorad så ska följande fungera. Det är ett kommando som delar upp filen i smådelar, på 10KiB vardera. Vill du ha större/mindre filer så ändra värdet på size i kommandot.

1. Skapa en katalog med med namnet "ZZZ" på skrivbordet, kopiera filen dit
2. Starta terminalen
3. Skriv "cd Desktop" <ENTER>
4. Skriv "cd ZZZ" <ENTER>
5. Kopiera in följande, men ändra filnamn.html till namnet på filen du vill dela upp:
Kod: Markera allt
filename="filnamn.html"; size=10240; \
i=1; filesize=$(wc -c "$filename"|cut -d " " -f 1); \
while [ $((($i-1) * size)) -lt $filesize ]; do \
dd if=$filename of=$filename."$i".txt bs=$size count=1 skip=$(($i-1)) 2>/dev/null; i=$(($i + 1)); \
done

6. Tryck <ENTER>

I katalogen borde det nu finnas ett antal filer med namn filnamn.html.1.txt, filnam.html.2.txt, ...
Sammelsurium
 
Inlägg: 588
Anslöt: 2009-11-29

Re: Kopiera innehåll ur alltför stor textfil?

Inläggav nallen » 2011-05-14 20:23:43

Ska vi vara på det viset fungerar split(1) alldeles utmärkt.

För dom som inte fattat RTFM:
$ split filen
yxar isär filen till bitar som är 1000 rader styck. -l <radantal> för att få andra storlekar.
nallen
 
Inlägg: 19701
Anslöt: 2006-08-27
Ort: Vid Skogen

Re: Kopiera innehåll ur alltför stor textfil?

Inläggav Sammelsurium » 2011-05-15 9:19:14

Se där, split kände jag inte till, men anade att det skulle finnas ett separat verktyg för det.
Sammelsurium
 
Inlägg: 588
Anslöt: 2009-11-29

Återgå till IT-forum



Logga in