从文本文件中选择特定数据并将其导出到csv

时间:2017-04-11 06:57:32

标签: powershell csv text

我被困在将文本文件转换为csv,其中所选数据需要放在csv中。到目前为止,我只管理了一行适用于我的代码,我无法进一步研究。

文字档案

搜索:对象:/ USER / ENT / FOL1下的EMP名称

对象:EMP NAMES对象位置点别名EMP名称
1SIG_MOU_RM_CTL / USER / ENT / BASE / FOL1
1SIG_MOU_COMBINED_ADJ / USER / ENT / BASE / FOL1
1SIG_MOU_CONTROL / USER / ENT / BASE / FOL1
1SIG_MOU_BKR / USER / ENT / BASE / FOL1
1SIG_MOU_MAN_ADJ / USER / ENT / BASE / FOL1
1SIG_MOU_PSS / USER / ENT / BASE / FOL1
1SIG_MOU_REG_MODE / USER / ENT / BASE / FOL1
SIG_MOUD_TUNE / USER / ENT / BASE / FOL1 BO SIG_MOU_41CONT / USER / ENT / BASE / FOL1 BOARD
SIG_MOU_AUT_MD / USER / ENT / BASE / FOL1 BOARD SIG_MOU_BASE_MODE / USER / ENT / BASE / FOL1 BOARD SIG_MOU_FC1CTRL / USER / ENT / BASE / FOL1 BOARD
SIG_MOU_FC2CTRL / USER / ENT / BASE / FOL1 BOARD
SIG_MOU_PSS_MODE / USER / ENT / BASE / FOL1 BOARD
SIG_MOU_SS_SIG_FIFO / USER / ENT / BASE / FOL1 BOARD
SIG_MOU_SS_FCR_FIFO / USER / ENT / BASE / FOL1 BOARD
SIG_MOU_SP_TYPE / USER / ENT / BASE / FOL1 BOARD
SIG_MAST_BA_CONT / USER / ENT / BASE / FOL1 MVAR
SIG_ST_BE_ALG / USER / ENT / BASE / FOL1 VALPROF

SIG_SP_SIG_VALPROF / USER / ENT / BASE / FOL1 VALPROF

SIG_SP_FCR_VALPROF / USER / ENT / BASE / FOL1 VALPROF

SIG_TRANSFER_MOD_DC_SP / USER / ENT / BASE / FOL1 RELOC
LVR_MOU_MODULE_CMDS / USER / ENT / BASE / FOL1 BOARD FCN0001 / USER / ENT / BASE / FOL1 /工作区5/0001 FCN0001_900 SWEEP
FCN0001001 / USER / ENT / BASE / FOL1 /工作区5/0001 BIFOLD
FCN0001005 / USER / ENT / BASE / FOL1 /工作区5/0001板
FCN0001008 / USER / ENT / BASE / FOL1 /工作区5/0001 BIFOLD
FCN000100A / USER / ENT / BASE / FOL1 /工作区5/0001板
FCN000100C / USER / ENT / BASE / FOL1 /工作区5/0001 BIFOLD
FCN000100E / USER / ENT / BASE / FOL1 /工作区5/0001 BIFOLD
FCN0001010 / USER / ENT / BASE / FOL1 /工作区5/0001 BIFOLD
FCN0001012 / USER / ENT / BASE / FOL1 /工作区5/0001 BIFOLD
FCN0001018 / USER / ENT / BASE / FOL1 /工作区5/0001 BIFOLD
FCN000101C / USER / ENT / BASE / FOL1 /工作区5/0001 BIFOLD
FCN0001020 / USER / ENT / BASE / FOL1 /工作区5/0001 CHANGEOVER
FCN0001028 / USER / ENT / BASE / FOL1 /工作区5/0001 HOLD
FCN0001029 / USER / ENT / BASE / FOL1 /工作区5/0001 HOLD
FCN000102A / USER / ENT / BASE / FOL1 /工作区5/0001 HOLD
FCN0002 / USER / ENT / BASE / FOL1 /工作区5/0002 FCN0002_901 SWEEP
FCN0002001 / USER / ENT / BASE / FOL1 /工作区5/0002 CLONE
FCN000200B / USER / ENT / BASE / FOL1 /工作区5/0002 CLONE
FCN000200D / USER / ENT / BASE / FOL1 /工作区5/0002 CLONE
FCN0002013 / USER / ENT / BASE / FOL1 /工作区5/0002 CLONE
FCN0002017 / USER / ENT / BASE / FOL1 /工作区5/0002 CLONE
FCN0002019 / USER / ENT / BASE / FOL1 /工作区5/0002 CLONE
FCN000201B / USER / ENT / BASE / FOL1 /工作区5/0002 CLONE
FCN0003 / USER / ENT / BASE / FOL1 /工作区3/0003 FCN0003_301 SWEEP
FCN0003010 / USER / ENT / BASE / FOL1 /工作区3/0003 BIFOLD
FCN0003016 / USER / ENT / BASE / FOL1 /工作区3/0003单个
FCN0004 / USER / ENT / BASE / FOL1 /工作区2/0004 FCN0004_064 SWEEP
FCN0004005 / USER / ENT / BASE / FOL1 /工作区2/0004质量 FCN0004006 / USER / ENT / BASE / FOL1 /工作区2/0004质量 FCN0005 / USER / ENT / BASE / FOL1 /工作区3/0005 FCN0005_201 SWEEP
FCN0005007 / USER / ENT / BASE / FOL1 /工作区3/0005单个
FCN0005008 / USER / ENT / BASE / FOL1 /工作区3/0005单个
FCN000500A / USER / ENT / BASE / FOL1 /工作区3/0005单个
FCN0005010 / USER / ENT / BASE / FOL1 /工作区3/0005单个
FCN0005023 / USER / ENT / BASE / FOL1 /工作区3/0005单个
FCN0006 / USER / ENT / BASE / FOL1 /工作区3/0006 FCN0006_204 SWEEP
FCN0006002 / USER / ENT / BASE / FOL1 /工作区3/0006 BIFOLD
FCN0006007 / USER / ENT / BASE / FOL1 /工作区3/0006 HOLD
FCN0006012 / USER / ENT / BASE / FOL1 /工作区3/0006 BIFOLD
FCN0006014 / USER / ENT / BASE / FOL1 /工作区3/0006 LOW FCN0007 / USER / ENT / BASE / FOL1 /工作区5/0007 FCN0007_160 SWEEP
FCN0008 / USER / ENT / BASE / FOL1 /工作区5/0008 FCN0008_161 SWEEP
FCN0009 / USER / ENT / BASE / FOL1 /工作区3/0009 FCN0009_303 SWEEP
FCN0009001 / USER / ENT / BASE / FOL1 /工作区3/0009 SEQ FCN0009016 / USER / ENT / BASE / FOL1 /工作区3/0009 LOW FCN0009017 / USER / ENT / BASE / FOL1 /工作区3/0009 SUM FCN000901C / USER / ENT / BASE / FOL1 /工作区3/0009 CLONE
FCN000901D / USER / ENT / BASE / FOL1 /工作区3/0009 OFI FCN000901F / USER / ENT / BASE / FOL1 /工作区3/0009单个
FCN0009026 / USER / ENT / BASE / FOL1 /工作区3/0009单个
FCN0009029 / USER / ENT / BASE / FOL1 /工作区3/0009单个
FCN000902E / USER / ENT / BASE / FOL1 /工作区3/0009 HIGHMON FCN0009036 / USER / ENT / BASE / FOL1 /工作区3/0009 HIGHMON FCN0009038 / USER / ENT / BASE / FOL1 /工作区3/0009单个
FCN0009039 / USER / ENT / BASE / FOL1 /工作区3/0009 HIGHMON FCN000903A / USER / ENT / BASE / FOL1 /工作区3/0009 SUM FCN000903B / USER / ENT / BASE / FOL1 /工作区3/0009 HIGHMON FCN000903C / USER / ENT / BASE / FOL1 /工作区3/0009单个
FCN000903D / USER / ENT / BASE / FOL1 /工作区3/0009 SUM FCN000903E / USER / ENT / BASE / FOL1 /工作区3/0009 HIGHMON FCN0009043 / USER / ENT / BASE / FOL1 /工作区3/0009单个
FCN000904C / USER / ENT / BASE / FOL1 /工作区3/0009 HOLD
FCN000904D / USER / ENT / BASE / FOL1 /工作区3/0009 HOLD
FCN000904E / USER / ENT / BASE / FOL1 /工作区3/0009 HOLD
FCN000904F / USER / ENT / BASE / FOL1 /工作区3/0009 HIGH
FCN0009050 / USER / ENT / BASE / FOL1 /工作区3/0009 GAIN
FCN0009051 / USER / ENT / BASE / FOL1 /工作区3/0009单个
FCN000A / USER / ENT / BASE / FOL1 /工作区5 / 000A FCN000A_150 SWEEP
FCN000A001 / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A003 / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A005 / USER / ENT / BASE / FOL1 /工作区5 / 000A BIFOLD
FCN000A006 / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A008 / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A00A / USER / ENT / BASE / FOL1 /工作区5 / 000A BIFOLD
FCN000A00D / USER / ENT / BASE / FOL1 /工作区5 / 000A BIFOLD
FCN000A00E / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A010 / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A012 / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A014 / USER / ENT / BASE / FOL1 /工作区5 / 000A BIFOLD
FCN000A017 / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A019 / USER / ENT / BASE / FOL1 /工作区5 / 000A BIFOLD
FCN000A01C / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A01E / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A020 / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A022 / USER / ENT / BASE / FOL1 /工作区5 / 000A BIFOLD
FCN000A025 / USER / ENT / BASE / FOL1 /工作区5 / 000A BIFOLD
FCN000A027 / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A02C / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A02D / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A02F / USER / ENT / BASE / FOL1 /工作区5 / 000A CLONE
FCN000A03A / USER / ENT / BASE / FOL1 /工作区5 / 000A BIFOLD

到目前为止,我可以使用以下方式阅读具体数据:

$a = (Get-Content *.txt) | Select-String "ValProf" , "BIFOLD" , "BOARD" | FOREACH {$_ -replace '/User/ENT/Base/'

        [array]$obj += New-Object psobject -Property @{

                 EMP = "Value in first column"
                Name  = "value in second column"


}
}
$a | Select-Object EMP , Name  | Export-Csv Output.csv -NoTypeInformation

预期输出将采用csv格式,其中包含2个列标题EMP和Name。 EMP应包含SIG_MOUD_TUNE,名称应包含BOARD。我想要获得的输出是: - The output

1 个答案:

答案 0 :(得分:1)

你快到了。您可以使用-split函数代替-replace

Get-Content *.txt | 
    Select-String "HSarna"  , "ValProf"  | 
    ForEach-Object {$_ -replace '/User/ENT/Base/'}

编辑:根据您的新要求,这里是您需要的代码:

Get-Content *.txt |
    Select-String "ValProf" , "BIFOLD" , "BOARD" | 
    ForEach-Object {
        New-Object psobject -Property @{
                EMP = [regex]::Match($_, '(\w+)').Groups[1].Value
                Name  = [regex]::Match($_, '.*\s+(\w+)$').Groups[1].Value
        }
    }  | 
    Select-Object EMP , Name |
    Export-Csv Output.csv -NoTypeInformation