如何从CSV文件中获取标题并将其写入另一个文件?

时间:2018-03-08 19:54:54

标签: windows perl powershell cmd header

如何从CSV文件中获取标头并将其写入另一个文件? 如果我在CSV文件中没有很多列,则此代码有效,但当我的CSV文件包含200多列时,它不起作用。它只是将列标题(但不是全部,它们被截断)回显到屏幕上。

@echo off
set /p "header="<book1.csv
echo %header% > "book3.csv"

2 个答案:

答案 0 :(得分:3)

#!/usr/bin/perl
use warnings;
use strict;

use Text::CSV_XS;

my $csv = 'Text::CSV_XS'->new({binary => 1, escape_char => '\\'});
open my $fh, '<', 'book1.csv' or die $!;
my $h = $csv->getline($fh);

my $out = 'Text::CSV_XS'->new({eol => $/, escape_char => '\\'});
open my $fho, '>', 'book3.csv' or die $!;
$out->say($fho, $h);

使用

进行测试
"Header 1","Header, 2","Header \"3\"","Header
4"
1,2,3,4

答案 1 :(得分:1)

如果您运行的是powershell,则应该能够使用-TotalCount(别名-Head)的-First(别名Get-ContentGC)参数来只需获取文件的第一行。

gc book1.csv -head 1|sc book3.csv