2009-03-18 25 views
5

Tôi có một số tệp lớn ở định dạng CSV mà tôi muốn chuyển thành đối tượng bằng cách sử dụng lệnh Import-Csv trong Powershell. Tuy nhiên, các tệp thiếu tiêu đề cột và chúng cần được thêm vào trước khi tôi sử dụng Import-Csv. Cách nhanh nhất và hiệu quả nhất để thêm các tệp này vào tệp là gì?Làm cách nào để hiệu quả trước khi chuyển một dòng sang một tệp lớn trong Powershell

Trả lời

6

Việc đăng ký một tệp lớn không phải là thao tác dễ dàng hoặc nhanh chóng.

Tuy nhiên, nhập khẩu-csv không có một "tiêu đề" lập luận rằng bạn có thể sử dụng để xác định các tiêu đề cột, ví dụ:

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

Tôi nghĩ đối số tiêu đề chỉ khả dụng trong PowerShell V2. – aphoria

0

Sao chép chuỗi bạn muốn thêm vào trước vào một tập tin mới sau đó nối với phần còn lại vào tệp mới đó.

4

Tôi chắc chắn có cách để thực hiện việc này trong một dòng, nhưng điều này sẽ hiệu quả.

Giả sử bạn có Test.csv với những nội dung:

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

mã PowerShell này sẽ tạo một tập tin mới, NewTest.csv, với tên cột và thêm nội dung của Test.csv.

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

Tôi không thể nói về hiệu suất của điều này nếu bạn có tệp lớn, nhưng tôi không biết cách nào khác để thực hiện việc này.

+2

Để tăng tốc độ một chút, hãy thêm Nội dung vào Nội dung bổ sung: Nhận nội dung. \ Test.csv | Add-Content -path. \ NewTest.csv – JasonMArcher

+0

Điều này làm việc tuyệt vời cho tôi! – tresstylez

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

Lớp lót này hoạt động tốt.

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

Giải thích

  • @("Header Text") tạo ra một mảng với một mục.
  • + (get-content myFile.txt) tạo một mảng mới với nội dung của cả hai.
  • | set-content myFile.txt dẫn kết quả đến nội dung đã đặt và lưu vào tệp.
Các vấn đề liên quan