gpt4 book ai didi

powershell - 使用Powershell搜索文件中的多行文本

转载 作者:行者123 更新时间:2023-12-03 00:25:20 24 4
gpt4 key购买 nike

我不是PowerShell的专家。我正在尝试在文件中搜索多行字符串,但没有得到想要的结果。

这是我的代码:

$search_string = @("This is the first line`nThis is the second line`nThis is the third line")
$file_path = "log.txt"
$ret_string = @(Get-Content -Path $file_path | Where-Object{$_.Contains($search_string)}).Count
Write-Host $ret_string
$ret_string设置为 0,尽管 "log.txt"包含与 $search_string完全相同的内容。

最佳答案

这里有几个问题:

  • 您正在搜索的是行数组,而不是包含换行符的字符串
  • 如果您使用的是Windows,则需要使用\r\n作为新行
  • .Contains函数将返回 bool(boolean) 值,因此不会帮助您检索计数
  • 您的$search_string不必是数组

  • 您可以使用 -Raw参数以字符串形式获取整个文件内容。您最好使用正则表达式在此处搜索。尝试:
    $search_string = "This is the first line`r`nThis is the second line`r`nThis is the third line"
    $file_path = "log.txt"
    $ret_string = (Get-Content -raw -Path $file_path | Select-String $search_string -AllMatches | % { $_.matches}).count

    这将返回文件中所有出现的 $search_string的计数

    关于powershell - 使用Powershell搜索文件中的多行文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51060976/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com