首页 > 解决方案 > 如何在powershell中剪切这些字符串中的子字符串?

问题描述

每个人。我是 Powershell 的新手,我对特定列中的值了解不多。

JOBID    STATUS       STORAGE POLICY        APPTYPE          BACKUPSET           SUBCLIENT                              INSTANCE                CLIENT                       

-----    ------       --------------        -------          ---------           ---------                              --------                ------                       

647      Completed    SP_Dedupe Files       File System      defaultBackupSet    ClienteDDB                             <default>               WIN-U0O9K2LMAF1              

641      Completed    SP_Dedupe Files       File System      defaultBackupSet    DDBBackup                              <default>               WIN-U0O9K2LMAF1 

例如,我通过 jobid 过滤带有 Select-String 的行,但我特别需要 subclient 列的值。因为它不是一个 cmdlet,所以我不能按属性拆分,所以我该如何使用正则表达式来做到这一点?哪一个?

标签: stringpowershellscripting

解决方案


快速解决方案...使用ConvertFrom-Csv

$text = @"
JOBID    STATUS       STORAGE POLICY        APPTYPE          BACKUPSET           SUBCLIENT                              INSTANCE                CLIENT                       

-----    ------       --------------        -------          ---------           ---------                              --------                ------                       

647      Completed    SP_Dedupe Files       File System      defaultBackupSet    ClienteDDB                             <default>               WIN-U0O9K2LMAF1              

641      Completed    SP_Dedupe Files       File System      defaultBackupSet    DDBBackup                              <default>               WIN-U0O9K2LMAF1 
"@ -split '\n' | ? {$_ -notmatch '---|^\s+'}

$csv = $text | % {$_ -replace '\s+',','} | ConvertFrom-Csv

会产生这样的结果:

JOBID STATUS    STORAGE   POLICY APPTYPE BACKUPSET SUBCLIENT        INSTANCE   CLIENT   
----- ------    -------   ------ ------- --------- ---------        --------   ------   
647   Completed SP_Dedupe Files  File    System    defaultBackupSet ClienteDDB <default>
641   Completed SP_Dedupe Files  File    System    defaultBackupSet DDBBackup  <default>

$csv[0].JOBID
647

推荐阅读