从 TXT 文件中读取某些单词前后的单词并转换为 CSV

Read words after and before some words from TXT file and Convert to CSV

我写了一个脚本,它必须读取 txt 文件,找到 "CN" 之后和“,”之前的所有单词,并将它们导出到 csv。

$TXTFile = "C:\original.txt" 
    Select-String -Path $TXTFile  -Pattern 'CN=(.*?),' -AllMatches |
    Select-Object -Expand Matches |
        ForEach-Object { $_.Groups[1].Value } | 
           Out-File "C:\Output.txt"
           Export-Csv "C:\Output.csv"

问题是 "Output.txt" 给了我正确的结果,但 "Output.csv" 给了我建立的 CN 的长度。 这里有什么问题?

调用文件“.csv”来获取 csv 是不够的。 csv 是由具有各种属性(列)的数据集(行)组成的逗号分隔文件。

Out-File cmdlet 只是生成一个文本文件。要生成 csv,请使用 Export-CSV。但这仅适用于作为输入的对象数组。你只是有一个字符串数组。

我更改了脚本,现在可以运行了:

Select-String -Path $TXTFile  -Pattern 'CN=(.*?),' -AllMatches |
  Select-Object -Expand Matches |
  ForEach-Object { $_.Groups[1].Value } | 
  select @{L="UserID"; E={$_}} |
  Export-CSV $CSVFile -noTypeInformation