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!

  • silas@lemmy.eco.brOP
    link
    fedilink
    English
    arrow-up
    4
    ·
    14 days ago

    Yeah, I ended up using awk, which solved my problem perfectly. I was just curious if I could do that with sed, but it seems too complicated. Thank very much, guys!

    • zero_spelled_with_an_ecks
      link
      fedilink
      English
      arrow-up
      1
      ·
      14 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.