एक फ़ाइल में कई टेक्स्ट फ़ाइलों को मिलाएं


10

मैं prएक पाठ फ़ाइल में कई पाठ फ़ाइलों को संयोजित करने के लिए यूनिक्स कमांड का उपयोग कर रहा हूं :

pr -F *files > newfile

प्रत्येक फ़ाइल एक अलग लंबाई, लाइनों की एक अलग संख्या है। मैं ज्यादातर परिणाम से खुश हूं, मुझे यह पसंद है कि इसमें मूल पाठ फ़ाइल का नाम भी शामिल है जिसके बाद उस फ़ाइल की सामग्री है। हालाँकि, मैं मूल पाठ फ़ाइल के नाम के बीच में रिक्त लाइनों को समाप्त करना चाहूंगा और यह सामग्री है। मैं केवल प्रत्येक को अलग करने के लिए विभिन्न पाठ फ़ाइलों के बीच रिक्त लाइनें चाहता हूं। इसके अलावा, यह ^Lप्रत्येक पाठ फ़ाइल की सामग्री के बाद चरित्र को प्रिंट करता है , और मैं उस चरित्र को समाप्त करना चाहूंगा।

इसमें पढ़ी गई प्रत्येक फ़ाइल को एक 'पृष्ठ' नंबर भी दिया गया है। केवल एक फाइल 66 लाइन डिफॉल्ट से लंबी है। वह फ़ाइल 2 'पृष्ठों' में समाप्त हो रही है, और रिक्त लाइनों द्वारा विभाजित 2 खंडों में विभाजित है। क्या बिना विभाजन के उस पाठ को लगातार लिखना संभव है?

हर प्रकार की सहायता के लिए आपका धन्यवाद!

जवाबों:


9

आप AWK उपयोगिता का उपयोग कर सकते हैं:

awk 'FNR==1{print ""}{print}' *files > newfile

स्रोत: /programming/1653063/how-do-i-include-a-blank-line-between-files-im-concatenating-with-cat


सुझाव के लिए धन्यवाद। हालाँकि, -T को पहचाना नहीं जा रहा है। मैं मैक ओएस एक्स पर काम कर रहा हूँ अगर वह मायने रखता है।
जनेट

दुर्भाग्य से, -t एक ही प्रकार की फ़ाइल बनाता है जो कि बिल्ली करती है, पाठ फ़ाइलों के बीच कोई विराम नहीं होती है।
जेनेट

धन्यवाद राडू। बस के बारे में मुझे क्या मैं चाहता हूँ! क्षमा करें, मुझे अब एहसास हुआ कि मैं गलत जगह पर पोस्ट कर रहा हूं, जैसा कि मैं ऑफ-टॉपिक होने के बारे में अधिसूचना देखता हूं। मैं तुम्हारी मदद के लिए धन्यवाद!
जेनेट

12

खाली लाइनों के लिए betwen फाइलें हैं:

cat file1 newline file2 newline file3 > newfile

जहाँ 'newline' खाली लाइन वाली फाइल है।


क्या आप स्पष्ट कर सकते हैं कि फाइल कैसे बनाई जाए newline? कुछ टेक्स्ट एडिटर्स स्वचालित रूप से अंतिम पंक्ति के अंतिम-पंक्ति वर्ण को जोड़ देंगे, और अन्य नहीं करेंगे, इसलिए कुछ लोग इस फ़ाइल को ठीक से बनाने में समस्याओं का अनुभव कर सकते हैं। इसे दूसरे तरीके से रखने के लिए: क्या शून्य-लंबाई वाली फ़ाइल में शून्य रेखाएँ हैं, या एक पंक्ति है?
एलियाह कगन

विम न्यूलाइन इन विम: विक थॉट्स इट।
डेरियस viitkevičius

जब तक मैं देखता हूं, "बिल्ली" प्रत्येक फ़ाइल के बीच स्वचालित रूप से नई लाइन डालती है।
myuce

1
for file in *.txt; do (cat "${file}"; echo) >> concatenated.txt; done

उपरोक्त eacb txt फ़ाइल की सामग्री को समसामयिकी में जोड़ देगा। उनके बीच एक नई रेखा जोड़ देगा।


0

आप catफ़ाइलों के पाठ को एक फ़ाइल में डंप करने के लिए उपयोग कर सकते हैं :

cat file1 file2 file3 > newfile

2
दुर्भाग्य से catकिसी भी अन्य आवश्यकताओं को पूरा नहीं करता है।
इग्नासियो वाज़केज़-अब्राम्स

1
हाँ धन्यवाद। लेकिन बिल्ली बस मूल पाठ फ़ाइल नाम के बिना प्रत्येक फ़ाइल की सामग्री को सूचीबद्ध करती है और यह बीच में कोई ब्रेक के साथ एक के बाद एक प्रत्येक फ़ाइल की सामग्री को भी सूचीबद्ध करती है। मुझे नई एक बड़ी फ़ाइल में प्रत्येक पाठ फ़ाइल की सामग्री के बीच कम से कम 1 रिक्त रेखा चाहिए।
जेनेट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.