首页 > 解决方案 > 从文本文件创建 CSV 并定义字段

问题描述

我想获取一个文本之间有空格的文本文档,并使用定义的字段创建一个 CSV 文件。我已经搜索了一下,还没有找到一种方法来做到这一点。我看到很多处理定义明确的字段 delim 的例子,但没有一个像下面这样随意的例子。

输入文件:

   1001 Mitch, Bucanon                          NO    NO    Baywatch, TV
   1002 SPARE SPARE SPARE                       NO    NO    SPARE
   1003 Sparrow, Jack                           NO    YES   Pirates, carrb 2

期望的输出:

"1001","Mitch, Bucanon","NO","NO","Baywatch,TV"
"1002","SPARE SPARE SPARE","NO","NO","SPARE"
"1003","Sparrow, Jack","NO","YES","Pirates, Carrib 2"

标签: powershell

解决方案


它是固定宽度,所以你需要位置。所以,这里有一个例子:

$arr = @()
$arr += "1001 Mitch, Bucanon                          NO    NO    Baywatch, TV"
$arr += "1002 SPARE SPARE SPARE                       NO    NO    SPARE"
$arr += "1003 Sparrow, Jack                           NO    YES   Pirates, carrb 2"

foreach($item in $arr)
{
    $code = $item.SubString(0,4);
    $name = $item.SubString(5, 40).Trim();
    $bin1 = $item.SubString(45, 6).Trim();
    $bin2 = $item.SubString(51, 6).Trim();
    $column5 = $item.SubString(57).Trim();
    write-host ($code + ",""" + $name.Trim() + """,""" + $bin1 + """,""" + $bin2 + """,""" + $column5 + """")
}

推荐阅读