在powershell中用缩进和换行替换字符



有没有一种方法可以在文本文件上使用foreach和replace来更改换行符和x个缩进的字符?这是一个特殊的请求,但它是为了让它在另一个程序中可读。

示例文本:

dyreriket |{Animalia}
!leddormer@{Annelida}
igler${Clitellata}

符号|,!,@,美元和更多的钱应该用换行符和给定数量的凹痕代替。我可以做凹痕,但不能做断线。使用`n时没有响应,它只删除原始字符。到目前为止,我一直在玩这个代码。

$t1 = '@';
$r1 = "`n`t`t";
$t2='¤';
$r2="`n";
Get-Content C:artertest.txt `
    | ForEach-Object { $_ -creplace $t1, $r1; } `
    |ForEach-Object { $_ -creplace $t2, $r2; } `
    | Out-File  C:artertest2.txt ;  

您可以进行逐行文本替换,如下所示:

$searchText = '[|!@☼$]';
$replacementText = "`r`n`t`t";
Get-Content -Path Input.txt `
    | ForEach-Object { $_ -creplace $searchText, $replacementText; } `
    | Out-File -FilePath Output.txt;

它使用正则表达式字符类将Input.txt中出现的所有|!@$字符替换为换行符、回车符和两个制表符,并将生成的文本写入Output.txt。要执行不区分大小写的搜索,请使用-replace-ireplace运算符。

最新更新