[NTLUG:Discuss] Find Files NOT containting 'string'

Stuart Johnston saj at thecommune.net
Thu Nov 6 19:35:39 CST 2003


The first grep needs some input so I would say:

grep 'thestringiwant' * |grep -v 'thestringidontwant'

The first grep will output (send to the second) only the lines that 
match the first string.  So, unless I misunderstand, this will only work 
if both strings are on the same line.  That is not the case in my 
situation.  Perhaps I should have made that more clear.

Thanks,
Stuart Johnston


David Camm wrote:
> grep 'thestringiwant'|grep -v 'thestringidontwant'
> 
> gives the files that have 'thestringiwant' and dont' have 
> 'thestringidontwant'
> 
> and, btw, grep is not 'line-based' it checks every line in the file, but 
> only reports the result for the entire file. if a file does not contain 
> 'thestringidontwant' anywhere then grep -v will get it right.
> 
> Stuart Johnston wrote:
> 
>> I need to search for files that contain one string but not another.  
>> Can anyone suggest a linux command to do this?
>>
>> The first part is easy with grep but since grep is line based it 
>> doesn't work will for the second part since pretty much every file 
>> will have at least one line that does not contain the string.
>>
>> I guess one way would be to grep a list of files containing the second 
>> string and compare it against the list of files that contain the first 
>> but I can't think how to easily XOR the two lists of files.  I don't 
>> want to ask you to 'do my homework' for me but if you can pull a 
>> command of the top of your head, I would appreciate it.
>>
>> thanks,
>> Stuart Johnston
>>
>>
>> _______________________________________________
>> https://ntlug.org/mailman/listinfo/discuss
>>
> 
> 
> 
> _______________________________________________
> https://ntlug.org/mailman/listinfo/discuss
> 




More information about the Discuss mailing list