LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - General (https://www.linuxquestions.org/questions/linux-general-1/)
-   -   using grep to output non-matches into output file (https://www.linuxquestions.org/questions/linux-general-1/using-grep-to-output-non-matches-into-output-file-851881/)

binny959 12-22-2010 03:53 PM

using grep to output non-matches into output file
 
Hi,
I'm running a mass grep script to search for patterns. I have it working but now what I want to do is display the patterns that do not match into another output file and no longer the matches. What option do I use with grep or pipe? I want the command to display the pattern it didn't find into a text file. I'm on Redhat 5.4 GNU. The file will contain 28 thousand grep queries and this time I don't want the matches, just the patterns that do not match.

Just for information purposes:
Target file to search against is called objects_from_file_map.txt and I would name the output file to something like non-matching_objects.csv

Example of one the start of my file where I'm doing it the normal way but like I said, I need the opposite now:

#!/usr/bin/sh
#this script takes searches for the missing objects in filemap and
#displays output in duplicated_matching_objects.csv
grep -n 118021.asm objects_from_file_map.txt>duplicated_matching_objects.csv
grep -n 118022.asm objects_from_file_map.txt>>duplicated_matching_objects.csv
grep -n 118023.asm objects_from_file_map.txt>>duplicated_matching_objects.csv
grep -n 118025.asm objects_from_file_map.txt>>duplicated_matching_objects.csv
..and so on

syg00 12-22-2010 04:08 PM

And the manpage was no help ?. Particularly the bit about invert-match ?.

binny959 12-24-2010 08:42 PM

Quote:

Originally Posted by syg00 (Post 4200502)
And the manpage was no help ?. Particularly the bit about invert-match ?.

I did look at the man page and that was the first thing I tried with -v option but for some reason it was logging like crazy into duplicated_matching_objects.csv. Then I wasn't sure if that was really what I needed. So I'll try to fidget around with that more and my file.

grep -nv 118022.asm objects_from_file_map.txt>>duplicated_matching_objects.csv

trey85stang 12-24-2010 09:34 PM

I dont think grep will do what you want on it's own.

catkin 12-24-2010 10:46 PM

Quote:

Originally Posted by binny959 (Post 4202439)
I did look at the man page and that was the first thing I tried with -v option but for some reason it was logging like crazy into duplicated_matching_objects.csv.

Which could be removed by pushing it through a sort | uniq pipe.

syg00 12-24-2010 11:20 PM

The entire concept is appalling inefficient. Usage of (even simple) regex would save the recurrent re-reading of the entire file - e.g. say
Code:

grep -nv 11802[0-3,5].asm objects_from_file_map.txt>>duplicated_matching_objects.csv
Modify as appropriate.


All times are GMT -5. The time now is 11:46 AM.