Thanks for the info.

I ended up writing a perl script instead. for this particular problem, I
read the whole file into a list and then used the following if statement. 

if ( ($listitem !~ /PLACED/) && ($listitem =~ /];/) )

Your way looks much nicer, I'll try to use that.


Benno Schulenberg-3 wrote:
> 
> sdnabble wrote:
>> I want to first parse through File1.txt and find all the lines
>> missin the XY information.
> 
> $ grep -v X.Y. File1.txt
> Some_string_1];
> Some_string_2];
> 
>> Then find that same string in 
>> file2.txt that have the needed XY information.
> 
> Difficult.  If those strings were on lines by themselves, it 
> would be easy.  Now you have to find a way to only grab the 
> "Some_string_n" part.  If this "_1", "_2" are a distinguishing 
> trait, then this would work:
> 
> $ grep -v X.Y. File1.txt | grep -o ".*_[0-9]"
> Some_string_1
> Some_string_2
> 
> If that produces the expected set of strings, then do:
> 
> $ grep -v X.Y. File1.txt | grep -o ".*_[0-9]" | grep -F -f - File2.txt
> inst "Some_string_1" PLACED in X2Y1;
> inst "Some_string_2" PLACED in X3Y1;
> 
>> And finally append 
>> the information to file1.txt
> 
> Use '>>' to pipe the output there:
> 
> $ grep -v X.Y. File1.txt | grep -o ".*_[0-9]" | grep -F -f - File2.txt
> >>File1.txt
> 
> 
>> grep "Some_String_" file1.txt | grep [^P]LACED > tempout.txt
>>
>> Right away it didn't work. For some reason I can't say look for
>> Some_String_ NOT containing the word PLACED.
> 
> Use the option '-v' to look for lines _not_ containing a pattern.
> 
>> Isn't that how to use "NOT"?
> 
> 'grep [^P]LACED' looks for the patterns aLACED, bLACED, cLACED, and so on,
> it looks for every occurrence of .LACED, excepting PLACED.
> 
> Benno
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/grep-help-with-cygwin-tf3683908.html#a10310140
Sent from the Gnu - Grep mailing list archive at Nabble.com.



Reply via email to