Powershell-可以从数千个Yaml文件中提取值并将其导出到文本文件

时间:2020-09-25 19:04:53

标签: powershell yaml

我们正在尝试为运行的服务器处理数千个用户数据文件,我们希望提取每个人的家庭位置。 YAML的结构是这样的。文件名是* UUID * .yml,文件总数超过2000个

lastAccountName: *name*
...
homes:
  home:
    world: *world*
    x: *x*
    y: *y*
    z: *z*
    yaw: *yaw*
    pitch: *pitch*
  home2:
    world: *world*
    x: *x*
    y: *y*
    z: *z*
    yaw: *yaw*
    pitch: *pitch*
...

如果可能的话,我想以人类最易读的格式导出这些值,但是我不确定该怎么做,而Google并不太有用。我认为这在python中也是可能的,但我从未使用过python,也不确定如何编写python脚本。抱歉,这有点含糊,但是我对Powershell和解析YAML文件不太熟悉

编辑:我忘了提到房屋可以有任何名称,因此它可以是房屋,也可以不是房屋。它不仅限于home_,其中_是任意数字。也可以超过1但不超过20

1 个答案:

答案 0 :(得分:1)

有一些模块可能会有所帮助。出于此答案的目的,我简要地测试了PowerShell画廊中的“ powershell-yaml”:

它提供2个命令

  1. ConvertFrom-Yaml
  2. 转换为Yaml

您可以在YAML文件上运行Get-Content并将其通过管道传输到ConvertFrom-Yaml

gc C:\temp\SampleYaml.yml.txt | ConvertFrom-Yaml

类似于ConvertFrom-Json,我认为它们将转换为PSCustomObjects,您可以在PowerShell中对其进行过滤操作。尽管我手上仅有的Yaml文件正在转换为哈希表,但这可能是文件本身的副作用。

另一个模块FXPSYaml似乎具有类似的命令。您可以在图库中找到这两个模块。

Install-Module FSPSYaml

Install-Module powershell-Yaml
相关问题