Skip Navigation

Using sed to match regexp patterns in a file with a fixed string (not the other way around)

Hi there!

Usually, sed can be used in different ways, but most of the time we use it to match lines in a file against a fixed regexp. Some examples:

This replaces ocurrences of regexp for "foo":

 
    
sed 's/regexp/foo/g' < myfile

  

This prints all lines that have "foo", but will change the first "o" in the line for an "a":

 
    
sed -n '/foo/s/o/a/p' < myfile

  

and so on...

But I tried to do a different thing, with no success: can I pass to sed a file with a bunch of regular expressions and test them against a fixed string? I tried to play with pattern space, hold space, with no success. It just seems impossible to use them (which would be the closest to "variables") in search commands.

I know sed is Turing complete, but using it that way would maybe require to implement a regexp engine from scratch?

Thanks!

6 comments
6 comments