如何使用PowerShell查找和替换文本文件中的单词?

要在PowerShell中搜索单词并将其替换到文件中,我们将使用字符串操作。实际上,PowerShell中的Get-Content命令用于读取几乎任何类型的文件内容。在本文中,我们正在考虑一个文本文件,如下所示。

Get-Content C:\Temp\TestFile.txt

输出结果

PS C:\> Get-Content C:\Temp\TestFile.txt

# In case of linux, networkInterface names are of the form eth*

# In Windows, please use the network full name from Device Manager

networkInterfaces: ["Microsoft Hyper-V Network Adapter"

]

overrideMetricsUsingScriptFile: false

scriptTimeoutInSec: 60

scriptFiles:

- osType: windows

filePath: monitors/NetworkMonitor/scripts/windows-metrics.bat

- osType: unixBase

filePath: monitors/NetworkMonitor/scripts/unix-base-metrics.sh

上面的输出是文件的内容,我们将使用它。我们需要找到NetWorkMonitor单词并将其替换为“活动”。请注意,上面的文件是文本文件,因此我们不需要将其转换为字符串,但是如果有其他扩展名,则可能需要在使用.ToString()命令或Out-String方法之前将输出转换为字符串执行任何操作。

现在,我们将首先找到请求的字符串,然后让我们检查一下需要使用Select-String cmdlet替换多少行。

(Get-Content C:\Temp\TestFile.txt) | Select-String -Pattern "NetworkMonitor"

输出结果

PS C:\> (Get-Content C:\Temp\TestFile.txt) | Select-String -Pattern "NetworkMonitor"

   filePath: monitors/NetworkMonitor/scripts/windows-metrics.bat

   filePath: monitors/NetworkMonitor/scripts/unix-base-metrics.sh

我们发现有两行带有“ NetworkMonitor”字样。我们需要用以下命令替换该单词。您还可以将Get-Content输出存储在变量中并对其执行操作。

(Get-Content C:\Temp\TestFile.txt) -replace "NetworkMonitor","Active"

输出结果

PS C:\> (Get-Content C:\Temp\TestFile.txt) -replace "NetworkMonitor","Active"

# In case of linux, networkInterface names are of the form eth*

# In Windows, please use the network full name from Device Manager

networkInterfaces: ["Microsoft Hyper-V Network Adapter"

]

overrideMetricsUsingScriptFile: false

scriptTimeoutInSec: 60

scriptFiles:

- osType: windows

filePath: monitors/Active/scripts/windows-metrics.bat

- osType: unixBase

filePath: monitors/Active/scripts/unix-base-metrics.sh

上面的命令替换了文件内容,但尚未存储,因此要保存更新的文件,我们将使用Set-Content,最终代码为,

(Get-Content C:\Temp\TestFile.txt) -replace "NetworkMonitor","Active" | Set-Content

C:\Temp\Testfile.txt -Verbos

您也可以选择其他路径来保存文件。如果文件是只读的,则将-Force参数与Set-Content cmdlet一起使用。

以上是 如何使用PowerShell查找和替换文本文件中的单词? 的全部内容, 来源链接: utcz.com/z/348840.html

回到顶部