如何将字符串附加到数据集中的其他字符串?
Posted
技术标签:
【中文标题】如何将字符串附加到数据集中的其他字符串?【英文标题】:How to append strings to other strings in a data set? 【发布时间】:2012-07-23 20:09:05 【问题描述】:我想用自定义字符串在数据集中附加几个字符串。
示例
数据集内容:
Test1
Test2
Test3
追加后的结果:
Test1.com
Test2.com
Test3.com
我是否必须使用正则表达式解析到每个 Test[n] 的末尾才能附加自定义字符串 (.com
)?有没有人有一个确切描述如何做到这一点的例子?
我正在从 SQL 表中读取数据并将值写入数据集,该数据集通过以下方式导出到 CSV:
$DataSet.Tables[0] | ConvertTO-Csv -Delimiter ',' -NotypeInformation |`% $_ -replace '"','' | out-file $outfile -Encoding "unicode"
DataSet 包含如下字符串:
Banana01
Banana02
Apple01
Cherry01
Cherry02
Cherry03
我想做的是将.com
仅附加到Cherry01
、Cherry02
和Cherry03
,并在附加.com
之后,将其导出为CSV文件。
【问题讨论】:
【参考方案1】:你可以这样使用:
示例 1
$t = "test"
$t = $t + ".com"
示例 2
$test = @("test1","test2")
$test | ForEach-Object
$t = $_ + ".com"
Write-Host $t
使用您添加的代码,我做到了这一点。我没有用于测试的数据库,所以我手动创建了数据集,因此您可能只需将代码中的 $DataSet[0] 更改为 $DataSet。表[0]。
$DataSet[0] | ConvertTO-Csv -Delimiter ',' -NotypeInformation | Foreach-Object$T=$_
IF($T -match "(Cherry\d\d)")$T = $T -replace "(Cherry\d\d)(.+)",'$1.com$2';$T | out-file $outfile -Encoding "unicode"
【讨论】:
谢谢。我已经在我的帖子中发布了一些代码,如果你可以看看它会很酷。 它很难测试,因为我没有访问 sql 的权限,所以请检查一下,如果它不正确,我可以尝试为您解决。 谢谢。但我认为这样每个字符串都会被附加,无论它以什么开头。但我只想附加那些以“Cherry#”开头的.com,正如我在我的初始帖子的编辑中发布的那样。 好吧,抱歉没有看到那部分在我编辑后现在尝试代码,编辑后的代码检查是否有任何东西被称为樱桃+两位数,例如cherry00,cherry01,cherry99 谢谢。我已经对其进行了测试,它似乎可以工作,但是如果我在数据集中有这样的东西怎么办:Cherry01,fruit,yummy 那么.com 将附加到 yummy 是什么使它成为 Cherry01,fruit,yummy.com。如果我只想在名称 Cherry01 之后插入它,它看起来像:Cherry01.com,fruit,yummy【参考方案2】:有很多方法。以下是一些:
# Using string concatenation
'Test1','Test2','Test3' | Foreach-Object $_ + '.com'
# Using string expansion
'Test1','Test2','Test3' | Foreach-Object "$_.com"
# Using string format
'Test1','Test2','Test3' | Foreach-Object "01" -f $_,'.com'
【讨论】:
谢谢。你能给我一个与我发布的代码相关的例子吗? 您要附加到的每个值的列标题是什么? 我要附加的所有字符串都有标题“vmname” 尝试类似: ... | Foreach-Object $_.vmname + '.com' $DataSet.Tables[0] | ConvertTO-Csv -Delimiter ',' -NotypeInformation |`% $_ -replace '"','' | Foreach-Object $T=$_.vmname if($T -match "ESX\d\d" -or $T -match "ESX\d\d\d") $T + '.com' Else$T | out-file $outfile -Encoding "unicode" 给了我一个空的结果。 【参考方案3】:$array | %if($_ -match "^Cherry\d\d")$_ += ".com";$_
【讨论】:
以上是关于如何将字符串附加到数据集中的其他字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 excel 附加到现有数据集而不丢失 Foundry 中的其他列?
编写并将float数组附加到C ++中hdf5文件中的唯一数据集