我试图在Powershell中删除行/字符串中的单词。我以几种不同的方式尝试了-replace运算符而没有结果。需要删除的数据位于包含相当多行的文本文件中,每行包含Data:Primary:然后是Azure Storage Account Key。我正在运行另一个脚本,它将遍历此txt,以便存储帐户密钥运行一些命令。
该行中的数据如下所示: 数据:主要:asdflkajsdflkj / $ asdfASDFasdf
我需要删除'数据:' '初级:'和第一个字母前的任何空格。
以下是我的剧本:
$getAccessKey = Get-Content 'file path'
$getAccessKey | ForEach-Object{
azure storage account keys list $_
} | Set-Content 'file path'
Get-Content 'file path' | Where-Object {$_ -match 'Primary'} | Set-Content 'file path'
Get-Content 'file path' | Where-Object {$_ -replace ".*:"} | Set-Content 'file path'
以下脚本是我之前尝试的脚本:
$getAccessKey = Get-Content 'file path'
$getAccessKey | ForEach-Object{
azure storage account keys list $_
} | Set-Content 'file path'
Get-Content 'file path' | Where-Object {$_ -match 'Primary'} | Set-Content 'file path'
Get-Content 'file path' | Where-Object {$_ -replace "Data:"} | Set-Content 'file path'
这些脚本都没有得到结果,但它似乎没有拿起':'或文字'数据:'
答案 0 :(得分:0)
根据你的评论,一个更好的解决方案就是运行类似的东西
$StorageAccountKeys = @{}
Get-AzureRmStorageAccount | `
foreach {$StorageAccountKeys.Add($_.StorageAccountName, `
((Get-AzureRmStorageAccountKey -ResourceGroupName `
$_.ResourceGroupName -Name $_.StorageAccountName).Key1)) }
这将创建一个包含订阅中所有存储帐户名和密钥的对象。
Name Value
---- -----
storagename xxxxxxxxxxxxxxxxxxxx-storagekey-xxxxxxxxxxxxxxxxxxxxx
storagename1 xxxxxxxxxxxxxxxxxxxx-storagekey1-xxxxxxxxxxxxxxxxxxxxx
storagename 2 xxxxxxxxxxxxxxxxxxxx-storagekey2-xxxxxxxxxxxxxxxxxxxxx
您可以使用foreach访问,也可以使用$StorageAccountKeys.storagename
答案 1 :(得分:0)
好消息,我在摆弄了一分钟之后想出了自己问题的答案。
$getAccessKey = Get-Content 'file path'
$getAccessKey | ForEach-Object{
azure storage account keys list $_
} | Set-Content 'file path'
Get-Content 'file path' | Where-Object {$_ -match 'Primary'} | Set-Content 'file path'
Get-Content 'file path' | ForEach-Object {$_ -replace "\w{4}:\s+\w{7}:\s+", ""} | Set-Content 'file path'