powershell - 从文本文件创建 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"
解决方案
它是固定宽度,所以你需要位置。所以,这里有一个例子:
$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 + """")
}
推荐阅读
- java - Android:时间和时区问题
- java - 如何在 yandex mapkit 中获取我当前位置的坐标?
- mysql - Laravel 更新查询(将值添加到现有值)
- .net-core - NServiceBus 路由不适用于基于通用类型的程序集
- c# - 如何在 C# 中应用 Windows 任务栏更改而不重新启动资源管理器?
- java - hadoop版本与java版本的最佳匹配是什么
- sql - tableau 从 5 数据库中获取数据
- ios - SwiftUI:如何在`$`可绑定对象运算符之前使用`!`运算符?
- logging - GCP:堆栈驱动程序全局错误日志不会报告错误
- java - 除了 Spring Oauth 和外部 Oauth 提供程序之外,我如何在 SpringBoot 客户端-服务器通信中实现 Oauth2?