Bash
Dzielenie plików
Szukaj…
Wprowadzenie
Czasami warto podzielić plik na wiele osobnych plików. Jeśli masz duże pliki, dobrym pomysłem może być podzielenie ich na mniejsze części
Podziel plik
Uruchomienie polecenia podziału bez żadnych opcji spowoduje podzielenie pliku na 1 lub więcej osobnych plików zawierających do 1000 wierszy każdy.
split file
Spowoduje to utworzenie plików o nazwach xaa
, xab
, xac
itp., Każdy zawierający do 1000 wierszy. Jak widać, wszystkie z nich są domyślnie poprzedzone literą x
. Jeśli plik początkowy miał mniej niż 1000 wierszy, utworzonoby tylko jeden taki plik.
Aby zmienić prefiks, dodaj żądany prefiks na końcu wiersza polecenia
split file customprefix
Teraz zostaną utworzone pliki o nazwach customprefixaa
, customprefixab
, customprefixac
itp.
Aby określić liczbę wierszy wyprowadzanych na plik, użyj opcji -l
. Poniżej podzieli plik na maksymalnie 5000 linii
split -l5000 file
LUB
split --lines=5000 file
Alternatywnie możesz podać maksymalną liczbę bajtów zamiast linii. Odbywa się to za pomocą opcji -b
lub --bytes
. Na przykład, aby zezwolić na maksymalnie 1 MB
split --bytes=1MB file
Możemy użyć sed z opcją w, aby podzielić plik na wiele plików. Pliki można podzielić, podając adres linii lub wzór.
Załóżmy, że mamy ten plik źródłowy, który chcielibyśmy podzielić:
cat -n sourcefile
1 Na Ning Nang Nong
2 Gdzie krowy idą Bong!
3 i wszystkie małpy mówią BOO!
4 Jest Nong Nang Ning
5 Gdzie idą drzewa Ping!
6 I dzbanki do herbaty jibber jabber joo.
7 Na Nong Ning Nang
Polecenie podzielenia pliku według numeru wiersza:
sed '1,3w f1
> 4,7w f2' sourcefile
To zapisuje wiersz 1 do wiersza 3 do pliku f1 i wiersz 4 do wiersza 7 do pliku f2 z pliku źródłowego.
cat -n f1
1 Na Ning Nang Nong
2 Gdzie krowy idą Bong!
3 i wszystkie małpy mówią BOO!
cat -n f2
1 Jest Nong Nang Ning
2 Gdzie idą drzewa Ping!
3 I dzbanki do herbaty jibber jabber joo.
4 Na Nong Ning Nang
Polecenie podzielenia pliku według kontekstu / wzoru:
sed '/Ning/w file1
> /Ping/w file2' sourcefile
Dzieli to plik źródłowy na plik1 i plik2. plik1 zawiera wszystkie linie pasujące do Ning, plik2 zawiera linie pasujące do Ping.
cat file1
Na Ning Nang Nong
Jest Nong Nang Ning
Na Nong Ning Nang
cat file2
Gdzie idą drzewa Ping!