मैं दो सीएसवी/पाठ फ़ाइलें है कि मैं शामिल होने के लिए करना चाहते हैं। दोनों में एक ही पहली पंक्ति होती है। मैं एक विलय फ़ाइल बनाने के लिए sed और cat का उपयोग करने का तरीका जानने का प्रयास कर रहा हूं, लेकिन पहली पंक्ति की केवल एक प्रति के साथ। और मेरे पास वाक्यविन्यास के साथ समय है। किसी भी मदद की सराहना की जाएगी :- डी! धन्यवाद, एंड्रयूFile1 + (File2 - पहली पंक्ति)> file3
उत्तर
यह फ़ाइलों फ़ाइल merged.txt
में data1.txt
और data2.txt
गठबंधन, data2.txt
से पहली पंक्ति लंघन होगा। अगर आप इसके साथ ठीक कर रहे हैं यह awk का उपयोग करता है:
(cat data1.txt; awk 'NR>1' data2.txt) > merged.txt
awk merged.txt
फाइल करने के लिए फ़ाइल data2.txt
से लाइन नंबर> 1 के साथ सभी लाइनें जोड़ देता है।
NR
निर्मित एक awk चर उस फ़ाइल संसाधित किया जा रहा की वर्तमान पंक्ति संख्या के लिए खड़ा है। यदि बूलियन अभिव्यक्ति NR > 1
सत्य है, तो रेखा रेखा को स्पष्ट रूप से प्रिंट करती है।
आप data1.txt
बरकरार रखने के बारे में परवाह नहीं है, तो आप सिर्फ अपने 2 फ़ाइल (ऋण इसकी पहली पंक्ति) संलग्न कर सकते हैं और कम करने के लिए सिर्फ इस:
awk 'NR>1' data2.txt >> data1.txt
awk साथ एक अन्य विकल्प:
awk 'NR==FNR || FNR>1' file1.txt file2.txt .. fileN.txt
यह पहली फ़ाइल में सभी लाइनों, या पहली पंक्ति के बाद बाद में फाइलों में किसी भी लाइन प्रिंट करता है।
अगर मैंने ऐसा किया तो क्या होगा: 'awk' एनआर == एफएनआर || एफएनआर> 1 '* .txt' –
आप फाइल ग्लोबिंग द्वारा मेल खाने वाली फ़ाइलों के क्रम पर भरोसा करेंगे। यदि उनमें सभी समान पहली पंक्तियां हैं, तो यह सुरक्षित होना चाहिए। आप कोशिश क्यों नहीं करते और देखते हैं कि क्या होता है? – ghoti
एक पंक्ति '1 डी के साथ हल के लिए निम्न आदेश परिणाम संलग्न File1 को
sed '1 d' file2 >> file1
आप इस आदेश के साथ 'file1' और' file2' दोनों को संशोधित कर रहे हैं - यह ओपी के साथ ठीक हो सकता है या नहीं भी हो सकता है। दोनों विकल्पों को प्रदान करने के लिए बेहतर (दूसरा मूल फ़ाइलों में से कोई भी नहीं बदल रहा है)। – Levon
@ लेविन: नहीं, आप यहां 'file2' को संशोधित नहीं कर रहे हैं। – tripleee
@ ट्रिपली ने बस इसका परीक्षण किया, यह * हटा नहीं * है, बल्कि * पहली पंक्ति * प्रदर्शित नहीं करता है .. इसे मिला। शायद उत्तर में बेहतर वाक्यांश हो सकता है। – Levon
मैं कहना चाहता हूँ सबसे सरल उपाय है जाएगा करें 2
में पहली पंक्ति को हटाने के लिए इसका मतलब है:
(cat file1.txt ; tail -n +2 file2.txt) > file3.txt
यह स्पष्ट रूप से आप सिर्फ क्या कर रहे हैं बताते हुए का लाभ दिया है: पूरे पहली फ़ाइल को मुद्रित, तो लेकिन se की पहली पंक्ति सभी प्रिंट फ़ाइल फ़ाइल, तीसरी फाइल को आउटपुट लिखना।
वाह !!! सबको धन्यवाद!!!!!!! :-D –
- 1. सी ++ FileIO कॉपी-बनाम-प्रणाली ("cp file1.x file2.x)
- 2. यूनिक्स "खोज" में अग्रणी "./" को कैसे पट्टी करें?
- 3. पीएचपी की आवश्यकता होती है() रिश्तेदार पथ त्रुटि
- 4. 3 बाइनरी फाइलों के लिए डिफ
- 5. सी getopt कई मूल्य
- 6. सी भाषा में कई स्रोत फ़ाइल के बीच एक चर और उसके मूल्य को साझा करने के लिए कैसे?
- 7. जेबॉस एएस 7 - कुछ आदेशों में युद्धों को तैनात करना
- 8. BASH
- 9. os.path.abspath ('file1.txt') सही रास्ते वापस नहीं करता है
- 10. चौड़ाई पहली या गहराई पहली खोज
- 11. बैच पार्स प्रत्येक पैरामीटर
- 12. पहली पंक्ति
- 13. पहली विफलता
- 14. पहली बार
- 15. पहली लॉन्च
- 16. पहली पंक्ति
- 17. कार्य शेड्यूलर - विंडोज 7
- 18. मैं COPY कमांड
- 19. पायथन ZipFile का उपयोग कर संरचना को बनाए रखे बिना ज़िप से फ़ाइलों को निकालें?
- 20. यह निर्धारित करने के लिए कि एक बफर संशोधित किया गया है, vimrc फ़ंक्शन क्या है?
- 21. विशिष्ट फ़ाइलों में स्टैश परिवर्तन
- 22. विभाजन जीएनयू साथ कमांड लाइन आर्ग समानांतर
- 23. "गिट एड" को पूर्ववत कैसे करें। एक विलय के दौरान?
- 24. संपूर्ण निर्देशिका पथ के बिना केवल फ़ाइल नाम दिखाने के लिए
- 25. बैच स्क्रिप्ट - निर्देशिका में प्रत्येक फ़ाइल पर रन कमांड
- 26. Django मॉडल डीबी में नहीं दिख रहा syncdb
- 27. शक्तियों के साथ दो टेक्स्ट फ़ाइलों को संयोजित करें
- 28. पहली सूचकांक PHP
- 29. पहली और अंतिम प्रतिबद्धता
- 30. मेरी पहली Haskell कार्यक्रम
वैकल्पिक रूप से, आप उपयोग कर सकते हैं 'पूंछ -n + 2'' awk 'एन.आर.> 1'' के बजाय। –
@ TannerL.Swett साफ .. मैं किसी भी तरह 'head' या' tail' का उपयोग कर के पहले सोच रहा था, लेकिन मैं कैसे 'awk' के साथ ऐसा करने पर कुछ था। और निश्चित रूप से अगर ओपी को 'data1.txt' रखने के बारे में परवाह नहीं है तो समाधान पहले कमांड को छोड़ सकता है और उस फ़ाइल में दूसरी फ़ाइल (पहली पंक्ति) को जोड़ सकता है। – Levon