pavan27
asked on
find word in all files uder one directory
experts,
i have a question. i have a directory under that there are 1000 files. now i need to find one word out of 1000 files. i am not sure in which file the word is present. now i need to find all the files which contain word.
if the the directory contain sub dierctories it need to check that all the directories and sub directories
i have a question. i have a directory under that there are 1000 files. now i need to find one word out of 1000 files. i am not sure in which file the word is present. now i need to find all the files which contain word.
if the the directory contain sub dierctories it need to check that all the directories and sub directories
find . -type f | xargs grep WhateverWord
This isn't exactly what you are looking for but maybe a point in the right direction. The is a vbs script that does what you want on a windows system. You might be able to take the logic and change it to your system.
'****Searches C:\UTSFiles for a given screen # and displays matches
'****
'*******************************************************************
'****Set conts & variables
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
GlobalCounter = 0
strComputer = "."
strSAWNum = inputbox("What word do you want to find? ")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
'****Set search folder
Set colFileList = objWMIService.ExecQuery _
("ASSOCIATORS OF {Win32_Directory.Name='C:\UTSFiles'} Where " _
& "ResultClass = CIM_DataFile")
If strSAWNum <> "" Then '****Only search if a value is entered.
Set objExplorer = WScript.CreateObject("InternetExplorer.Application")
objExplorer.Navigate "about:blank"
objExplorer.ToolBar = 0
objExplorer.StatusBar = 0
objExplorer.Width=400
objExplorer.Height = 400
objExplorer.Left = 0
objExplorer.Top = 0
Do While (objExplorer.Busy)
Wscript.Sleep 200
Loop
objExplorer.Visible = 1
objExplorer.Document.Body.InnerHTML = "<center>Retrieving information. " _
& "This might take several minutes to complete. Please do not close this window, it will close automatically when finished.</center>"
Set colServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2"). _
ExecQuery("Select * from Win32_Service")
For Each objService in colServices
Wscript.Sleep 200
Next
For Each objFile In colFileList
strName = objFile.FileName
FoundCounter = 0
Set objFile = objFSO.OpenTextFile(objFile.Name, ForReading) '****Open input file
Do Until objFile.AtEndOfStream '****read thru the file line by line until end of file
strNextLine = objFile.Readline
If InStr(strNextLine, strSAWNum) <> 0 Then
If FoundCounter = 0 Then '**********Only Display Results if it hasn't been displayed yet
Wscript.Echo "Found " & strSAWNum & " in " & strName & "." '*****Show the file name
FoundCounter = FoundCounter+1 'Counter up
GlobalCounter = GlobalCounter+1 'Counter up
End If
End If
Loop
objFile.Close 'close input file
Next 'file
objExplorer.Quit
End If
Wscript.echo "Found " & GlobalCounter & " file(s) matching " & strSAWNum & "." '****Show results
ASKER
Great reply.
suppose i have 100 file. now i don't want to search all 1000 files for a specific word. can i use filter condition on list of files. suppose i need to check only 100 file out of 1000 for specific word.
how do i do that
suppose i have 100 file. now i don't want to search all 1000 files for a specific word. can i use filter condition on list of files. suppose i need to check only 100 file out of 1000 for specific word.
how do i do that
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
What type of filter do you want to use?
the command find give you different options for searching files, you may see
man find
to see these options
man find
to see these options