Linux'ta Bash Betiği Kullanarak Çoklu Parçalar Halindeki Dosyayı Birleştirmek
Buna sık sık ihtiyaç duyabiliyoruz. Birden fazla parçaya ayrılmış ve bir tek dosyaya ait parçaları birleştirmek... Bu işlem linuxta bir komut satırında halledilebilecek kadar kolay bir işlem. Eğer parçalarımız alfabetik sıra ile isimlendirilmişse, yani elimizdeki dosyalar şuna benzer bir yapıdaysa;
film0001.mkv, film0002.mkv, ... , film1000.mkv
Bu durumda yapılacak işlem çok basit:
cat film*.mkv > film.mkv
Komutunu yazdığımızda parçalar doğru sırada olduğu için sorunsuzsa ardarda eklenerek büyük dosyayı oluşturabiliyor. Bir de alfabetik olmayan isimlendirme şekilleri var. Onlarda durum bir adım daha karışık olduğundan basit bir betik yazmak gerekiyor. Örneğin elimizdeki dosyalar şu şekilde isimlendirilmiş olsun:
film1.mkv, film2.mkv, ..., film876.mkv, ... , film1000.mkv
Bu durumda alfabetik sıra bozulmuş olacağından dosyaları bir önceki basit cat komutu ile birleştirmek yanlış sonuç verecektir. Bu parçacıkları doğru sıralamayla birleştirmek için alfabetik sırayı doğru bir şekilde tanımlamak gerekmektedir:
for x in {1..1000};do cat film${x}.mkv >> film.mkv;done
Bu basit döngü ile parçacıklar doğru sıralama ile birleştirilmiş olacaktır. Aynı mantıkla daha farklı isimlendirme durumları da ele alınabilir.
film0001.mkv, film0002.mkv, ... , film1000.mkv
Bu durumda yapılacak işlem çok basit:
cat film*.mkv > film.mkv
Komutunu yazdığımızda parçalar doğru sırada olduğu için sorunsuzsa ardarda eklenerek büyük dosyayı oluşturabiliyor. Bir de alfabetik olmayan isimlendirme şekilleri var. Onlarda durum bir adım daha karışık olduğundan basit bir betik yazmak gerekiyor. Örneğin elimizdeki dosyalar şu şekilde isimlendirilmiş olsun:
film1.mkv, film2.mkv, ..., film876.mkv, ... , film1000.mkv
Bu durumda alfabetik sıra bozulmuş olacağından dosyaları bir önceki basit cat komutu ile birleştirmek yanlış sonuç verecektir. Bu parçacıkları doğru sıralamayla birleştirmek için alfabetik sırayı doğru bir şekilde tanımlamak gerekmektedir:
for x in {1..1000};do cat film${x}.mkv >> film.mkv;done
Bu basit döngü ile parçacıklar doğru sıralama ile birleştirilmiş olacaktır. Aynı mantıkla daha farklı isimlendirme durumları da ele alınabilir.
Comments