【发布时间】:2022-01-04 23:32:59
【问题描述】:
我们在一个文件夹中有多个文本文件需要编辑。文本文件是用于 Azure DevOps 的 Multi-Stage Azure Pipelines as code (.yaml),我们需要对其进行更新。我们有特定的行号需要删减,例如我们需要从 30 个文件中删减第 54-68 行,但保留其余代码。此类行的示例:
- stage: DeployWebApps
variables:
- group: Environment1
jobs:
- job: DeployWebApps
pool:
vmImage: 'windows-latest'
steps:
- task: AzureFileCopy@3
displayName: 'Copy ARM Template'
inputs:
SourcePath: 'DevOps\IaC\WebApps.json'
azureSubscription: Development Subscription Service Connection'
Destination: 'AzureBlob'
storage: 'xxx'
ContainerName: 'armtemplates'
outputStorageUri: 'artifactsLocation'
outputStorageContainerSasToken: 'artifactsLocationSasToken'
sasTokenTimeOutInMinutes: '240'
我们想使用我描述的方法,因为第 56 行:
- group: Environment1
在每个文件中都不同,而其余行相同。在这种情况下,Regex 似乎比 PowerShell 更难编写,并且不能解决在多个文件中替换行的问题。
我发现的最佳方法是在此处的答案中 Powershell remove a range of lines from a text file
如果你想要的内容总是在前 4 行,你可以这样做 这个:
(Get-Content C:\file.txt)[0..3] | set-content C:\outfile.txt
此脚本会删除除第 1-4 行之外的所有内容。我怎样才能只删除第 54-68 行?
【问题讨论】:
标签: powershell