gpt4 book ai didi

powershell - 输出文件名,不是带有选择字符串的字符串

转载 作者:行者123 更新时间:2023-12-02 23:01:19 27 4
gpt4 key购买 nike

我正在使用 powershell 来“grep”特定字符串的源代码。如果字符串在文件中,我想要文件的名称,而不是包含该字符串的代码行。

我还想要文件名,仅一次,而不是与文件存在的次数一样多地列出。

我目前正在使用:

gci . -include "*.sql" -recurse | select-string -pattern 'someInterestingString'

现在我明白 select-string 的输出是某种对象,我猜我在控制台中看到的是该对象的 ToString() 。我假设我可以使用 format-table 来控制选择字符串的输出,并且我假设 sort 仅获取不同的值。

但这有很多猜测。

最佳答案

我认为我不完全理解你想要做什么。如果您希望按文件对输出进行分组,可以使用 -GroupBy 参数通过管道传输到 Format-Table 中:

gci . -include "*.sql" -recurse `
| select-string -pattern 'someInterestingString' `
| Format-Table -GroupBy Path

如果您只想获取匹配的文件名称而不包含任何其他信息,可以将 Select-Object-Unique 参数结合使用:

gci . -include "*.sql" -recurse `
| select-string -pattern 'someInterestingString' `
| Select-Object -Unique Path

如果您只对文件名感兴趣,无论该名称本身是否在层次结构中多次出现,那么您可以选择 Filename 属性。

<小时/>

注意:Get-Member cmdlet 对于确定对象上存在哪些属性非常有帮助:

gci . -include "*.sql" -recurse `
| select-string -pattern 'someInterestingString' `
| Get-Member

您还可以使用其别名 gm 代替。

关于powershell - 输出文件名,不是带有选择字符串的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1499575/

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