powershell - powershell 脚本调整以获得所需的结果
问题描述
再会,
我再次需要你的帮助。使用以下脚本:
$data = Import-Csv .\input.txt -delimiter ";" -Header (1..20)
1..9 | %{$data[0].($_+10) = $data[$_].10}
($data[0] | convertto-csv -delimiter ";" -NoType | select -skip 1) -replace '"' | out-file output.txt
gc output.txt
...我正在编辑一个 .txt 文件,到目前为止,该文件最多包含 10 个数据行,他将以下行中的最后一个值写入第一行。
如果没有 10 行/值,他用分号填充它们,以便稍后可以再次导入文件。
现在我想扩展脚本,以便在 .txt 文件中最多可以有 15 行。
有人可以帮助我并告诉我必须调整哪些参数才能获得所需的结果吗?
输入:
Klaus;Müller;Straße;PLZ;Ort;;;;;DE12345;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE12345678;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE999999;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE7777777;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE12345;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE12345678;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE999999;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE7777777;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE999999;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE7777777;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE7777778;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE7777777;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE999999;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE7777777;
Klaus;Müller;Straße;PLZ;Ort;;;;;DE7777778;
所需的输出:
Klaus;Müller;Straße;PLZ;Ort;;;;;DE12345;DE12345678;DE999999;DE7777777;DE12345;DE12345678;DE999999;DE7777777;DE999999;DE7777777;DE7777778;DE7777777;DE999999;DE7777777;DE7777778;
不幸的是,我不知道我必须调整哪些值......
解决方案
您必须将第一行中的 1..20 扩展到1..25 , 将第二行中的1..9扩展到1..14
解决方案一
$data = Import-Csv .\input.txt -delimiter ";" -Header (1..25)
1..14 | %{$data[0].($_+10) = $data[$_].10}
($data[0] | convertto-csv -delimiter ";" -NoType | select -skip 1) -replace '"' | out-file output.txt
gc output.txt
但我会建议另一种不依赖于总行数的解决方案:
建议的解决方案
$data = Import-Csv .\input.txt -delimiter ";" -Header (1..20)
($data |
foreach `
-begin {$Columns=(1..10)} `
-process {
$Row = $_; #Save the loop-variable
$Columns.foreach({$Row.$_}) ;
$Columns =@(10)} ) -join ";"
解释
在第一行中,$Columns-Variable设置为数组 1..10。因此$Columns.foreach({$Row.$_}将产生第一行的所有十个值。之后$Columns仅设置为第 10 列。所以对于所有行
问候,马丁
推荐阅读
- javascript - 如何将 Angular 项目作为库并在 JS 项目中使用?
- vue.js - 如何使用 VueJS 将图像上传到 Go 服务器
- angular - Angular,即使设置了 base-href,项目也没有在生产中运行
- html - 如何将活动元素添加到 div 中的 li?
- python - 使用 plot_acf 时不显示置信区间
- python - 重新安装后使用 pandas 数据框的问题
- sql - 将 DateTime(来自 SQL Live 表)转换为 DD/MM/YYYY
- excel - 删除一行中的第一个字符*仅当它是一个数字时(Google 表格/Excel)
- node.js - 启动 npm 时出错:web 应用程序的根目录中不存在 node_modules
- linux - 使用 shell 脚本替换文件中的多行文本