News for hackers. Stuff that matters.
Re:Useful sed scripts and patterns by adrianscheff on Friday November 12, 2021 @03:37AM (#29197364)
Thank you for the feedback and the constructive criticism. Regarding the hold space I found it very confusing to use and understand. IMO it represents the 80/20 of sed (80% effort for 20% results).

You're right, I'm using -r even when it's not necessary. To my defense I think it's a good habit to have since without it regex expressions are painful to write. I didn't considered that using -E it's a better choice but I'll correct that now. (one might argue again that typing -r is easier than -E :D ).

Regarding the definition of words - I also thought of that when I wrote that snippet. I know it's not the complete regex for a word and that word regex patterns might differ. And I was probably a bit lazy - but I'll correct it presently.

I'd also like to say that I didn't write this as an absolute and ultimate reference. If I'm honest I wrote this as much to teach others as to solidify this knowledge myself. Now since it seems it gained traction I'm kinda obligated to make this better, no? Darn. :)

PS: if you'd like to help me make this better please submit a pull request or leave a comment here. Looking at your profile I see that you try to limit your online time so I probably shouldn've asked. :P

Re:Useful sed scripts and patterns by dolmen on Friday November 12, 2021 @06:22AM (#29198172)
Most examples that use '#!/bin/bash' should be rewritten to use '#!/usr/bin/sed -f'.

Example "multiple replacements":

    #!/usr/bin/sed -f
    s/a/A/
    s/foo/BAR/
    s/hello/HELLO/
Save it as replace.sed; chmod u+rx replace.sed; ./replace.sed myfile.txt
Re:Useful sed scripts and patterns by adrianscheff on Friday November 12, 2021 @08:01AM (#29198863)
Thanks, I've modified to use .sed scripts instead. I used bash scripts because I remembered (incorrectly it seems) that sed scripts were unsafe.
Re:Useful sed scripts and patterns by chasil on Friday November 12, 2021 @09:39AM (#29199643)
CentOS 7's sed doesn't support -E, but CentOS 8 does. That might cause some confusion.

Also, FYI, this is the link for the POSIX specification for sed:

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/s...

Notice that -i is not POSIX.

Re:Useful sed scripts and patterns by dolmen on Friday November 12, 2021 @06:15AM (#29198142)
No mention of ';' to have multiple command on one line.

Example:

    sed '10{p;q;}' myfile.txt
Re:Useful sed scripts and patterns by adrianscheff on Friday November 12, 2021 @07:31AM (#29198663)
Thank you for your feedback! Personally I very rarely use the ; operator since it works badly with braces and commands that use files. However I've added an example using the ; operator.

PS: May I humbly point out that the command you provided will actually print up to line 10 and then a duplicate line. Like I said, unexpected (even though it seems logical). :)

Re:Useful sed scripts and patterns by dolmen on Friday November 12, 2021 @09:04AM (#29199330)
Yes: forgot -n