Bash
Dela upp filer
Sök…
Introduktion
Ibland är det bra att dela en fil i flera separata filer. Om du har stora filer kan det vara en bra idé att dela upp dem i mindre bitar
Dela upp en fil
Att köra split-kommandot utan några alternativ kommer att dela upp en fil i 1 eller flera separata filer som innehåller upp till 1000 rader vardera.
split file
Detta skapar filer med namnet xaa
, xab
, xac
, etc, var och en med upp till 1000 rader. Som ni ser är alla som standard förbokade med bokstaven x
. Om den ursprungliga filen var mindre än 1000 rader skulle bara en sådan fil skapas.
För att ändra prefixet lägger du till önskat prefix i slutet av kommandoraden
split file customprefix
Nu customprefixaa
filer med namnet customprefixaa
, customprefixab
, customprefixac
etc.
-l
alternativet -l
att ange antalet rader som ska matas ut per fil. Följande kommer att dela upp en fil i högst 5000 rader
split -l5000 file
ELLER
split --lines=5000 file
Alternativt kan du ange ett maximalt antal byte istället för rader. Detta görs med alternativen -b
eller --bytes
. Till exempel för att tillåta högst 1 MB
split --bytes=1MB file
Vi kan använda sed with w-alternativet för att dela upp en fil i flera filer. Filer kan delas genom att ange radadress eller mönster.
Anta att vi har den här källfilen som vi vill dela:
cat -n sourcefile
1 På Ning Nang Nong
2 Där korna går Bong!
3 och aporna säger alla BOO!
4 Det finns en Nong Nang Ning
5 Där träden går Ping!
6 Och tepannorna jibber jabber joo.
7 På Nong Ning Nang
Kommando för att dela filen efter radnummer:
sed '1,3w f1
> 4,7w f2' sourcefile
Detta skriver linje1 till linje3 till fil f1 och linje4 till linje7 till fil f2, från källfilen.
cat -n f1
1 På Ning Nang Nong
2 Där korna går Bong!
3 och aporna säger alla BOO!
cat -n f2
1 Det finns en Nong Nang Ning
2 Där träden går Ping!
3 Och tepannorna jibber jabber joo.
4 På Nong Ning Nang
Kommando för att dela filen efter sammanhang / mönster:
sed '/Ning/w file1
> /Ping/w file2' sourcefile
Detta delar källfilen till fil1 och fil2. file1 innehåller alla rader som matchar Ning, file2 innehåller rader som matchar Ping.
cat file1
På Ning Nang Nong
Det finns en Nong Nang Ning
På Nong Ning Nang
cat file2
Där träden går Ping!