如何通过powershell脚本编辑文本文件中的行

xnifntxz  于 2022-12-23  发布在  Shell
关注(0)|答案(1)|浏览(368)

我是powershell世界的新手,当然我被卡住了。我试图迭代文本文件,找到一些行并编辑它。不能使用简单的替换标志,因为我有一些其他的逻辑参与。
所以我的方法是这样的:

Get-ChildItem -Path $JsonsFolderPath  -File -Recurse -Filter *.json | ForEach-Object {}

用这一行迭代$JsonsFolderPath文件夹中的所有json。
现在,热迭代通过所有行的文件,并做一些自定义逻辑?
我试过这样的方法:(这是在上前襟内)

$content = Get-Content -Path $_.FullName |
    ForEach-Object {
        if(//something)
        {
            return ModifyFunction($_)
        }
        else
        {
            return $_ // do not modify
        }
    } | Set-Content -Path $_.FullName

如何处理这个问题?

ffscu2ro

ffscu2ro1#

你可以在powershell中循环这些行

foreach($line in [System.IO.File]::ReadLines(<file_path>)) {
    $line.Replace('<original_string>', '<new_string>')
}

你也可以添加条件或计数器来编辑特定的行或特定的行号。对于特定的行号,只需在for循环之前声明一个计数器变量和一个目标行号。在for循环中将计数器递增1,并在替换该行内容之前检查是否$counter-eq $targetLineNumber。
如果你知道确切的字符串,你想替换,那么我建议你到这个链接:
https://shellgeek.com/powershell-replace-line-in-file/
干杯。

相关问题