使用PowerShell通过从行首匹配模式从csv文件中提取文本行

时间:2019-02-28 20:56:20

标签: regex powershell

我有一个CSV文件,我需要提取出现在行开头的特定模式,例如:

文本行:

"555555","A",John"

这有效:

Get-Content $CsvFile | Select-String '^"555555"'

这不是:

$idnum = "555555"
Get-Content $CsvFile | Select-String '^"$idnum"'

当字符串分配给变量时,如何提取行?

1 个答案:

答案 0 :(得分:4)

powershell中的单引号是一个文字。因此,在第二个示例中,您将明确地寻找匹配“ $ idnum” 的方法。因为您的数据中有双引号,所以您需要解决它们。

选项 您可以建立双引号来解决这个问题

Get-Content $CsvFile | Select-String "^""$idnum"""

或者您可以像这样设置字符串替换格式:

Get-Content $CsvFile | Select-String ('^"{0}"' -f $idnum)

或者您可以更新$ idnum以包括双引号,然后选择字符串调用更容易阅读

$idnum = '"555555"'
Get-Content $CsvFile | Select-String "^$idnum"