cat
Çıkış yönlendirmesi ile kullanın . Sözdizimi şu şekildedir: cat file [file] [[file] ...] > joined-file
.
Sadece iki dosyaya sahip bir örnek (daha fazlasına sahip olabilirsiniz):
$ echo "some text in a file" > file1
$ echo "another file with some text" > file2
$ cat file1 file2 > mergedfiles
$ cat mergedfiles
some text in a file
another file with some text
"Çok sayıda dokümanınız" olması durumunda, kabarıklık kürecemesinden (kalıplar) yararlanın:
cat input-files-dir/* > joined-file
Bu, bu dizindeki tüm dosyaları geçerli dizine ekler (çıkış dosyasının kendisiyle eşleşmesini önler). Bu, cat
yönlendirme ve çıkış yönlendirme kullanımından tamamen bağımsızdır - sadece tüm dosyaları argüman olarak sağlayan Bash'dir cat
.
Dosya türleri
Sadece kağıt ve bantla yaptığınız gibi dosyaları birbirine yapıştırır (birleştirir). Asıl dosya formatının bununla başa çıkabileceği umrunda değil. Metin dosyaları için çalışacak, ancak PDF'ler, ODT'ler, vb. İçin çalışmayacak. Peki, bunları bir araya getirecek, ancak artık geçerli bir PDF / ODT değil.
Birleştirme sırası
Foibos'un işaret ettiği gibi , kabuk toplanması dosya adlarının alfabetik sıralaması ile sonuçlanacaktır. Bash ve Shell Globbing bu şekilde çalışır.
input file is output file
Hata hakkında zeyilname
Giriş dosyalarının düzeni, çıktıyla aynı dosyayla eşleştiğinde, bu bir hataya neden olur. Bu bir güvenlik özelliği. Örnek: cat *.txt > out.txt
İkinci seferde koşmak buna sebep olur.
Bu konuda ne yapabilirsin:
- Çıktı adıyla eşleşmeyen gerçek giriş dosyalarıyla eşleştirmek için daha spesifik bir desen seçin. Örnek:
*.txt
Çıktı dosyası olan girdi dosyaları kalıbı output.out
çarpışmaz.
- Farklı dizinlerde çalışın. Yukarıdaki örnekte
input-files-dir
, tüm dosyaları yerleştirmek ve geçerli çalışma dizinine çıktı almak için ayrı bir dizin kullandım . Bu, bu hatayı almak imkansız hale getirir.
ls
Sadece eşleşmeleri listelemek için kalıplarınızı deneyin . Örneğinls *.txt
eşleşti ediliyor görmek için.