我想要一个看起来像这样的文本文件:
SAMSUNG-SM-G930A 355502070023342 SAMSUNG-SM-G930A 355502070023342 SAMSUNG-SM-G930A Not Available GI-I9500_TMMARS 354926050849775 GI-I9500_TMMARS 354926050849775 GI-I9500_TMMARS 354926050849775
并在每两行之间添加一个空行。因此,例如,它应该是如何看起来像
SAMSUNG-SM-G930A 355502070023342 SAMSUNG-SM-G930A 355502070023342 SAMSUNG-SM-G930A Not Available GI-I9500_TMMARS 354926050849775 GI-I9500_TMMARS 354926050849775 GI-I9500_TMMARS 354926050849775
我无法让它正常工作。我错过了什么?这是我用来尝试完成此任务的代码。我的想法是增加数组值以捕获数组的所有成员。总会有偶数个数组变量。
$Path44 = "C:\Users\J\Desktop\Script\FinalResults.txt"
$NewContents = Get-Content $Path44
$Var1[0]
$Var2[1]
foreach ($NewContent in $NewContents) {
$NewContents[0]
$NewContents[1]
$Var1++
$Var2++
Write-Host "`n"
}
答案 0 :(得分:2)
有几种方法可以做到这一点,例如计算行数并在每个偶数行号后回显一个空行:
$file = 'C:\path\to\your.txt'
$i = 0
(Get-Content $file) | ForEach-Object {
$_ # echo line
$i++
if ($i % 2 -eq 0) { '' } # append empty line on even line numbers
} | Set-Content $file
或者您可以使用正则表达式替换:
$file = 'C:\path\to\your.txt'
(Get-Content $file -Raw) -replace '(.*\n){2}', "`$&`n" | Set-Content $file
正则表达式中的.
元字符匹配除换行符之外的任何字符,因此.*\n
匹配所有字符,包括下一个换行符(即一行)。通过对"线进行分组"表达式和添加量词,你得到两个连续的行。将匹配项替换为自身($&
)和换行符(`n
),并且在每隔一行后有效插入一个空行。