Bash
Bestanden splitsen
Zoeken…
Invoering
Soms is het handig om een bestand in meerdere afzonderlijke bestanden te splitsen. Als je grote bestanden hebt, is het misschien een goed idee om het in kleinere stukken te breken
Split een bestand
Als u de opdracht Splitsen uitvoert zonder opties, wordt een bestand opgesplitst in 1 of meer afzonderlijke bestanden met elk maximaal 1000 regels.
split file
Hiermee worden bestanden gemaakt met de naam xaa
, xab
, xac
, enz., Die elk maximaal 1000 regels bevatten. Zoals u kunt zien, krijgen ze allemaal standaard de letter x
. Als het oorspronkelijke bestand minder dan 1000 regels bevat, wordt slechts één bestand gemaakt.
Om het voorvoegsel te wijzigen, voegt u het gewenste voorvoegsel toe aan het einde van de opdrachtregel
split file customprefix
Nu worden bestanden met de naam customprefixaa
, customprefixab
, customprefixac
etc. gemaakt
Gebruik de optie -l
om het aantal regels op te geven dat per bestand moet worden uitgevoerd. Het volgende splitst een bestand op in maximaal 5000 regels
split -l5000 file
OF
split --lines=5000 file
Als alternatief kunt u een maximum aantal bytes opgeven in plaats van lijnen. Dit wordt gedaan met behulp van de opties -b
of --bytes
. Bijvoorbeeld om maximaal 1 MB toe te staan
split --bytes=1MB file
We kunnen de optie sed met w gebruiken om een bestand in meerdere bestanden te splitsen. Bestanden kunnen worden gesplitst door een regeladres of patroon op te geven.
Stel dat we dit bronbestand hebben dat we willen splitsen:
cat -n sourcefile
1 Op de Ning Nang Nong
2 Waar de koeien naartoe gaan Bong!
3 en de apen zeggen allemaal BOO!
4 Er is een Nong Nang Ning
5 Waar de bomen heen gaan Ping!
6 En de theepotten jibber jabber joo.
7 Op de Nong Ning Nang
Opdracht om het bestand te splitsen op regelnummer:
sed '1,3w f1
> 4,7w f2' sourcefile
Dit schrijft regel1 naar regel3 in bestand f1 en regel4 naar regel7 in bestand f2, vanuit het bronbestand.
cat -n f1
1 Op de Ning Nang Nong
2 Waar de koeien naartoe gaan Bong!
3 en de apen zeggen allemaal BOO!
cat -n f2
1 Er is een Nong Nang Ning
2 Waar de bomen heen gaan Ping!
3 En de theepotten jibber jabber joo.
4 Op de Nong Ning Nang
Opdracht om het bestand te splitsen op context / patroon:
sed '/Ning/w file1
> /Ping/w file2' sourcefile
Dit splitst het bronbestand op in file1 en file2. file1 bevat alle regels die overeenkomen met Ning, file2 bevat regels die overeenkomen met Ping.
cat file1
Op de Ning Nang Nong
Er is een Nong Nang Ning
Op de Nong Ning Nang
cat file2
Waar de bomen heen gaan Ping!