catआउटपुट पुनर्निर्देशन के साथ उपयोग करें । सिंटेक्स: cat file [file] [[file] ...] > joined-file।
केवल दो फ़ाइलों के साथ उदाहरण (आप कई और अधिक हो सकते हैं):
$ 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
यदि आपके पास "कई दस्तावेज" हैं, तो शेल ग्लोबिंग (पैटर्न) का उपयोग करें:
cat input-files-dir/* > joined-file
यह उस निर्देशिका में सभी फाइलों को वर्तमान निर्देशिका में शामिल कर देगा (इसे आउटपुट फ़ाइल से मिलान करने के लिए रोकना)। यह catऔर आउटपुट पुनर्निर्देशन के उपयोग के लिए पूरी तरह से स्वतंत्र है - यह सिर्फ बैश है जो सभी फाइलों को तर्क के रूप में प्रदान करता है cat।
फ़ाइल प्रकारों
यह सिर्फ एक साथ फाइलों (गोंद) को मिलाएगा जैसा कि आप कागज और टेप के साथ करेंगे। यह वास्तविक फ़ाइल प्रारूप को संभालने में सक्षम होने के बारे में परवाह नहीं करता है। यह पाठ फ़ाइलों के लिए काम करेगा, लेकिन पीडीएफ, ओडीटी आदि के लिए नहीं। ठीक है, यह उन्हें एक साथ गोंद देगा, लेकिन यह एक वैध पीडीएफ / ओडीटी नहीं है।
जुड़ने का आदेश
जैसा कि फोइबोस ने बताया कि शेल ग्लोबिंग फ़ाइल नामों के वर्णमाला क्रम में होगा। इस तरह से बैश और शेल ग्लोबिंग काम करता है।
input file is output fileत्रुटि के बारे में परिशिष्ट
जब इनपुट फ़ाइलों का पैटर्न आउटपुट के रूप में बहुत ही फ़ाइल से मेल खाता है, तो यह एक त्रुटि का कारण होगा। यह एक सुरक्षा सुविधा है। उदाहरण: cat *.txt > out.txtदूसरी बार चलाने के कारण यह होगा।
आप इसके बारे में क्या कर सकते हैं:
- वास्तविक इनपुट फ़ाइलों से मिलान करने के लिए अधिक विशिष्ट पैटर्न चुनें, आउटपुट नाम से मेल नहीं खाते। उदाहरण:
*.txtआउटपुट फ़ाइल के साथ इनपुट फ़ाइल पैटर्न output.outटकराएगा नहीं।
- विभिन्न निर्देशिकाओं में कार्य करें। ऊपर दिए गए उदाहरण में मैंने
input-files-dirसभी फ़ाइलों को चालू करने के लिए एक अलग निर्देशिका का उपयोग किया है , और वर्तमान कार्यशील निर्देशिका के लिए आउटपुट। इससे यह त्रुटि प्राप्त करना असंभव हो जाता है।
lsकेवल मैचों को सूचीबद्ध करने के लिए अपने पैटर्न का उपयोग करें। उदाहरण केls *.txtलिए देखें कि क्या मिलान किया जा रहा है।