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.
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.
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). :)
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