man/text
man · Metin İşleme

$ split

Bölüm 1 · Metin İşleme

bir dosyayı parçalara ayırır

Söz Dizimi

     split [-cd] [-l satır_sayısı] [-a sonek_uzunluğu] [dosya [önek]]
     split [-cd] -b bayt_sayısı[K|k|M|m|G|g] [-a sonek_uzunluğu] [dosya [önek]]
     split [-cd] -n yığın_sayısı [-a sonek_uzunluğu] [dosya [önek]]
     split [-cd] -p desen [-a sonek_uzunluğu] [dosya [önek]]

Açıklama

split aracı, verilen dosyayı okur ve (hiçbir seçenek belirtilmemişse) orijinal dosyayı değiştirmeden her biri 1000 satırdan oluşan dosyalara böler. Eğer dosya tek bir tire işareti (‘-’) ise veya belirtilmemişse, split standart girdiden okuma yapar.

Seçenekler aşağıdaki gibidir:

-a sonek_uzunluğu Dosya adının sonekini oluşturmak için sonek_uzunluğu kadar harf kullanır.

-b bayt_sayısı[K|k|M|m|G|g] Uzunluğu bayt_sayısı bayt olan bölünmüş dosyalar oluşturur. Sayının sonuna k veya K eklenirse dosya bayt_sayısı kilobaytlık parçalara bölünür. Sayının sonuna m veya M eklenirse dosya bayt_sayısı megabaytlık parçalara bölünür. Sayının sonuna g veya G eklenirse dosya bayt_sayısı gigabaytlık parçalara bölünür.

  • -c: Dosyaları oluşturmaya devam eder ve mevcut çıktı dosyalarının üzerine yazmaz.

  • -d: Harf tabanlı sonek yerine sayısal sonek kullanır.

-l satır_sayısı Uzunluğu satır_sayısı satır olan bölünmüş dosyalar oluşturur.

-n yığın_sayısı Dosyayı yığın_sayısı kadar daha küçük dosyaya böler. İlk n - 1 dosya (dosya boyutu / yığın_sayısı) boyutunda olacak ve son dosya kalan baytları içerecektir.

-p desen Girdi satırı, genişletilmiş bir düzenli ifade (extended regular expression) olarak yorumlanan desen ile her eşleştiğinde dosya bölünür. Eşleşen satır, bir sonraki çıktı dosyasının ilk satırı olacaktır. Bu seçenek, -b ve -l seçenekleriyle uyumsuzdur.

Ek argümanlar belirtilirse, birincisi bölünecek girdi dosyasının adı olarak kullanılır. İkinci bir ek argüman belirtilirse, bu dosyanın bölüneceği dosyaların adları için bir önek olarak kullanılır. Bu durumda, dosyanın bölündüğü her bir dosya, önekin ardından “a-z” aralığındaki sonek_uzunluğu kadar karakter kullanan sözcüksel olarak sıralanmış bir sonek ile adlandırılır. Eğer -a belirtilmemişse, başlangıç soneki olarak iki harf kullanılır.

Önek argümanı belirtilmemişse, dosya yukarıdaki gibi soneklerle ve “x” önekiyle adlandırılmış, sözcüksel olarak sıralanmış dosyalara bölünür.

Varsayılan olarak, split mevcut tüm çıktı dosyalarının üzerine yazar. Eğer -c bayrağı belirtilirse, bunun yerine split henüz mevcut olmayan adlara sahip dosyalar oluşturur.

Ortam

LANG, LC_ALL, LC_CTYPE ve LC_COLLATE ortam değişkenleri, environ(7) sayfasında açıklandığı gibi split aracının yürütülmesini etkiler.

Çıkış Durumu

split aracı başarı durumunda 0, bir hata oluşursa >0 değeriyle sonlanır.

Örnekler

     Girdiyi, her dosya en fazla 2 satır içerecek şekilde gerektiği kadar dosyaya bölün:

	   $ echo -e "first line\nsecond line\nthird line\nforth line" | split -l2

     Dosya adları için sayısal önekler kullanarak girdiyi 10 baytlık yığınlara bölün. Bu işlem 10 baytlık iki dosya (x00 ve x01) ve kalan 2 baytı içeren üçüncü bir dosya (x02) üretir:

	   $ echo -e "This is 22 bytes long" | split -d -b10

     6 dosya üretecek şekilde girdiyi bölün:

	   $ echo -e "This is 22 bytes long" | split -n 6

     Bir satır “t” harfinin ardından “a” veya “u” gelen düzenli ifadeyle her eşleştiğinde yeni bir dosya oluşturarak girdiyi bölün, böylece iki dosya oluşur:

	   $ echo -e "stack\nstock\nstuck\nanother line" | split -p 't[au]'

Ayrıca Bakınız

csplit(1), re_format(7)

Standartlar

split aracı, IEEE Std 1003.1-2001 (“POSIX.1”) standardına uygundur.

Geçmiş

split komutu ilk olarak Version 3 AT&T UNIX sürümünde yer almıştır.

FreeBSD 14 öncesinde, desen ve satır eşleştirme yalnızca 65.536 bayttan kısa satırlarda çalışıyordu.