arrays之使用 powershell 从文本文件中的值创建数组

阿里 阅读:40 2024-10-01 17:34:08 评论:0

我有一个包含以下内容的文本文件:

SEGMENTS="worker01 worker02 worker03 worker04" 
WORKER_SEGMENTS="worker01 worker02 worker03 worker04" 
#SEGMENTS="worker01" 
#WORKER_SEGMENTS="worker01" 

我从另一个 powershell 脚本读取这个文件,我想创建一个 WORKER_SEGMENTS 值的数组。我到目前为止:

$workers = Get-Content $strPath"\worker\conf\segments.conf" | Where-Object {$_ -like "*WORKER_SEGMENTS*"} 
Write-Host $workers 

这会产生:

PS Q:\mles\etl-i_test\rc> .\etl.ps1 
WORKER_SEGMENTS="worker01 worker02 worker03 worker04" #WORKER_SEGMENTS="worker01" 

我只需要 WORKER_SEGMENTS 中的 worker01worker02worker03worker04 >(没有前导#)作为数组。我如何实现这一点?

请您参考如下方法:

你可以试试这个:

Get-Content .\t.txt |  
? { $_ -like "WORKER_SEGMENTS*" } |  
% { $_ -replace '.*?"([^"]*)".*', '$1' -split " " } 
 
worker01 
worker02 
worker03 
worker04 

或者

Get-Content .\t.txt |  
? { $_ -like "WORKER_SEGMENTS*" } |  
% { ($_ -split '"')[1] -split ' ' } 
 
worker01 
worker02 
worker03 
worker04 


标签:Shell
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号