2009-03-18 9 views
5

में बड़ी फ़ाइल में एक पंक्ति को कुशलतापूर्वक प्री-पेंड कैसे करूं, मेरे पास CSV प्रारूप में कुछ बड़ी फ़ाइलें हैं जिन्हें मैं पावरहेल में Import-Csv कमांड का उपयोग करके ऑब्जेक्ट्स में बदलना चाहता हूं। फाइलें कॉलम हेडिंग्स गायब हैं और इन्हें Import-Csv का उपयोग करने से पहले इन्हें जोड़ा जाना चाहिए। फ़ाइल में जोड़ने का सबसे तेज़ और सबसे प्रभावी तरीका क्या है?मैं पावरहेल

उत्तर

6

बड़ी फ़ाइल के लिए तैयार करना एक आसान या त्वरित संचालन नहीं है।

हालांकि, आयात सीएसवी एक "शीर्षक" तर्क है कि यदि आप कॉलम हैडर निर्दिष्ट करने के लिए उपयोग कर सकते हैं, यानी है:

$header = 'Foo', 'Bar', 'Baz' 
import-csv .\myfile.csv -header $header 
+0

मुझे लगता है कि हेडर तर्क केवल PowerShell V2 में उपलब्ध है। – aphoria

0

कॉपी स्ट्रिंग आप फिर बाकी श्रेणीबद्ध एक नई फ़ाइल से जोड़ें करना चाहते उस नई फाइल के लिए।

4

मुझे यकीन है कि एक पंक्ति में ऐसा करने का एक तरीका है, लेकिन यह काम करेगा। स्तंभ नाम के साथ NewTest.csv

1,2,3 
4,5,6 
7,8,9 

यह PowerShell कोड एक नई फ़ाइल बनाना होगा, , और Test.csv की सामग्री को संलग्न:

आप यह मानते हुए इन सामग्री के साथ Test.csv है। यदि आप एक बहुत बड़ी फ़ाइल है

Add-Content -path .\NewTest.csv -value "Col1,Col2,Col3" 
$contents = Get-Content .\Test.csv 
Add-Content -path .\NewTest.csv -value $contents 

मैं इस के प्रदर्शन से बात नहीं कर सकते हैं, लेकिन मैं यह करने के किसी भी अन्य तरीके के बारे में पता नहीं कर रहा हूँ।

+2

चीजों को थोड़ा सा गति देने के लिए, सामग्री-सामग्री में गेट-सामग्री पाइप करें: सामग्री प्राप्त करें। \ Test.csv | ऐड-कंटेंट -पथ। \ NewTest.csv – JasonMArcher

+0

यह मेरे लिए बहुत अच्छा काम करता है! – tresstylez

0
$largeFile = get-content .\largeFile.txt 
$header = "Col1,Col2,Col3,Col4" 
$headerArray = $header -split ' ' 
$headerArray + $largeFile | out-file largeFileWithHeader.txt 
3

यह एक लाइनर अच्छी तरह से काम करता है।

@("Header Text") + (get-content myFile.txt) | set-content myFile.txt 

स्पष्टीकरण

  • @("Header Text") एक आइटम के साथ एक सरणी पैदा करता है।
  • + (get-content myFile.txt) दोनों की सामग्री के साथ एक नया सरणी बनाता है।
  • | set-content myFile.txt सेट-सामग्री के परिणाम को पाइप करता है और फ़ाइल में सहेजता है।