如何在多个文件中搜索字符串并在 Excel 或 Powershell 中的 csv 中返回带有行号/文本的文件名
Posted
技术标签:
【中文标题】如何在多个文件中搜索字符串并在 Excel 或 Powershell 中的 csv 中返回带有行号/文本的文件名【英文标题】:How to search a string in multiple files and return file name with line number/text in an Excel or csv in Powershell 【发布时间】:2015-12-27 21:53:18 【问题描述】:我找到了一个答案,在此处给出了 powershell 中的文件列表
How to search a string in multiple files and return the names of files in Powershell?
但我还需要知道该文本所在的行号和行文本。在此之后,我需要将输出写入 excel 或 csv。
编辑: Get-ChildItem -recurse |选择字符串模式“ftp”| Write-Host 脚本给我的输出为 C:\codes\prog1.txt:10:FTP 但我希望输出为路径 - C:\codes\prog1.txt line number-10 Line text-FTP "server1" in电子表格
【问题讨论】:
请提供描述您的问题和努力的最小工作示例代码! Get-ChildItem -recurse |选择字符串模式“ftp”| Write-Host 脚本给我的输出为 C:\codes\prog1.txt:10:FTP 但我希望输出为路径 - C:\codes\prog1.txt line number-10 Line text-FTP "server1" in Excel 请编辑问题并在此处发布代码,而不是在评论中! 【参考方案1】:试试这个(不知道你是只想要文件名还是文件路径,把你不想要的去掉就好):
Get-ChildItem -recurse | Select-String -pattern "string" | Select-Object path,line,linenumber,filename | Export-Csv -Path c:\somepath\result.csv
【讨论】:
感谢 Oggew,是的,它按预期工作。非常感谢您的快速回复。!! 您好,我正在使用下面的脚本来处理我想要的任意数量的字符串,但是下面的脚本存在问题,它为输入文件中的每个字符串创建单独的 excel。我尝试只创建一个文件,但它覆盖了以前的内容,因此为不同的字符串提出了不同的文件。你知道如何在同一个(一个)excel表中附加数据吗? $content = Get-Content ..\KeyWord.txt cd "..\Test\" ForEach ($Word in $content) Get-ChildItem -recurse |选择字符串模式 $Word |选择对象路径、行、行号、文件名 |导出-csv -Path "..\result_$word.csv" 如果像这样添加 -Append 会怎样:"Export-Csv -Path c:\somepath\file.csv -Append" "将 CSV 输出添加到指定文件的末尾。没有这个参数, Export-CSV 替换文件内容而不发出警告。” 唯一的问题是我需要运行脚本的系统,它有 Powershell 2.0,所以如果你知道附加的任何替代方案? 这应该可以工作:***.com/questions/21048650/…以上是关于如何在多个文件中搜索字符串并在 Excel 或 Powershell 中的 csv 中返回带有行号/文本的文件名的主要内容,如果未能解决你的问题,请参考以下文章