Artur Pyszczuk's blog...

"Software is like sex: it's better when it's free."
Linus Torvalds
/home/linux/commands/split/

split - Rozdzielenie pliku na części

Z użyciem polecenia split mamy możliwość rozdzielić plik na kawałki. Tzn mamy plik, który ma 100 wierszy. Możemy zrobić z niego 10 plików po 10 wierszy każdy. Użycie tego programu jest następujące.

$ split [OPCJE] [PLIK_WEJŚCIOWY [PREFIX]]

Jeśli nasz plik wejściowy, będzie miał mniej wierszy niż 1000, a nie podamy dodatkowych opcji, to cała zawartość tego pliku znajdzie się w innym, nowym pliku, którego nazwa będzie zaczynała się od domyślnego prefiksu 'x'. Przykład pokazano na poniższym rysunku.

Polecenie split
Rys. 1. Polecenie split


Jeśli nie podamy pliku wejściowego, to program czytać będzie znaki ze standardowego wejścia. Aby wykaz, który został pokazany na rys. 1 został podzielony na kilka plików, na przykład każdy wiersz do nowego pliku, należy użyć opcji -l, po której podajemy liczbę oznaczającą ilość wierszy przypisywaną do poszczególnego pliku. Tak więc każdy wiersz zapiszemy do nowego pliku w następujący sposób.

Polecenie split
Rys. 2. Polecenie split - każdy wiersz w nowym pliku


Prefiks, czyli przedrostek, który dodawany jest do nazwy może zostać ustawiony na dowolny, dlatego też teraz pokaże jak tego użyć.

Polecenie split
Rys. 3. Polecenie split - nowy przedrostek


Domyślnie (nawet po zmianie nazwy przedrostka) nazwa pliku uzupełniana jest przez litery, poczynając od aa, ab, itd. Możemy użyć numerycznego dopełnienia nazw plików. Odpowiada za to opcja -d.

Polecenie split
Rys. 4. Polecenie split - numeryczne dopełnienie nazwy


Ilość cyfr, lub liter uzupełnienia możemy też zmienić, domyślna wartość, jak się okazało jest dwa, ale z użyciem opcji -a długość tę możemy zmodyfikować.

Polecenie split
Rys. 5. Polecenie split - zmiana długości znaków dopełniających


Ostatnie dwie opcje, które możemy wykorzystać odnoszą się do ilości bajtów. Ilość bajtów jaką zajmuje plik możemy sprawdzić za pomocą polecenia wc. Konkretną ilość bajtów, która zostanie zapisana do pliku możemy ustawić za pomocą opcji -b. Przykład znajduje się na rys. 6.

Polecenie split
Rys. 6. Polecenie split - Konkretna wielkość (w bajtach) plików


Ponieważ do nowo tworzonych plików kopiowana jest równa (lub mniejsza) ilość bajtów, tak więc do pliku nie dostawiane są znaki przejścia do nowego wiersza, dlatego też użycie polecenia wc daje informację o tym, że nie ma żadnego wiersza (poza tymi plikami, w których znak przejścia do nowej linii zawiera się w kopiowanych bajtach).

Ostatnia opcja, w odróżnieniu od opcji -b różni się tym, że nie każdy plik ma taką samą liczbę bajtów. Każdy wiersz dzielony jest na konkretną (podaną) ilość bajtów. Ostatnia część bajtów (liczona do znaku nowego wiersza) zapisywana jest do pliku i tylko ta ilość bajtów, co widać na rys. 7. Tam, gdzie w pierwszej kolumnie jest 1, to oznacza, że ostatnim bajtem był znak nowego wiersza. Dla pliku xlorem_ac znakiem nowego wiersza jest czternasty znak.

Polecenie split
Rys. 7. Polecenie split - opcja -C



Wiecej informacji na temat programu split znajdziesz w podreczniku systemowym man.
Wpisujac w konsoli man split

Wiecej informacji na temat programu split znajdziesz również w programie info.
Wpisujac w konsoli info coreutils 'split invocation'

Some rights reserved 2010 - 2015 Artur Pyszczuk

| Strona Główna | Kontakt |