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!

  • zero_spelled_with_an_ecks
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 days ago

    Good call. I have no doubt sed could do it but I do doubt it in would be worth the time to figure it out vs just adding awk in there.