我想在多个文件(目录内)中的特定行号处搜索文本。
示例:我的目录 (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
为您的脚本文件的扩展名。