我有一个CSV文件,我需要提取出现在行开头的特定模式,例如:
文本行:
"555555","A",John"
这有效:
Get-Content $CsvFile | Select-String '^"555555"'
这不是:
$idnum = "555555"
Get-Content $CsvFile | Select-String '^"$idnum"'
当字符串分配给变量时,如何提取行?
答案 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"