在多个文件的特定行中搜索术语

在多个文件的特定行中搜索术语

我想在多个文件(目录内)中的特定行号处搜索文本。

示例:我的目录 (C:\Scripts) 中有大约 100 个脚本文件,我想扫描所有这些文件并查找第 31 行中的术语“getId()”。

考虑到我在 Windows 10 上工作,我该怎么做才能检索第 31 行包含“getId()”的所有结果(例如文件名)?

是否存在任何现有的“基于 GUI”的工具,其中包含开箱即用的功能?

答案1

import os

lidir=os.listdir("C://Scripts") #lists all the files
for file in lidir:
    fo=open(str("C://Scripts//"+file)) #open the file
    content = fo.readlines()
    tofindin=""
    try:
        tofindin = content[30]
    except:
        continue
    x=tofindin.find("getId()") # finds
    if x != -1:
        print("Present in",file)

您需要安装 Python 才能运行此程序。另外,以管理员身份运行此程序,因为您的脚本位于 C: 目录中。将其保存为“.py”文件,保存在任何位置。

答案2

您可以尝试 Powershell。它已安装在 Windows 上。运行以下命令:

Get-ChildItem *.ini | ForEach { $found = (Get-Content $_.name | Select -Index 30 | Select-String "getid\(\)"); if( $found.Length -gt 0){write-host $_.Name}  }

替换*.ini为您的脚本文件的扩展名。

相关内容