Comment on

<- View Parent
tal@olio.cafe ⁨2⁩ ⁨days⁩ ago

sed can do a bunch of things, but I overwhelmingly use it for a single operation in a pipeline: the s// operation. I think that that’s worth knowing.

sed 's/foo/bar/' will replace all the first text in each line matching the regex “foo” with “bar”.

That’ll already handle a lot of cases, but a few other helpful sub-uses:

sed 's/foo/bar/g' will replace all text matching regex “foo” with “bar”, even if there are more than one per line

`sed ‘s/([0-9a-f]*)/0x\1/g’ will take the text inside the backslash-escaped parens and put that matched text back in the replacement text, where one has ‘\1’. In the above example, that’s finding all hexadecimal strings and prefixing them with ‘0x’

If you want to match a literal “/”, the easiest way to do it is to just use a different separator; if you use something other than a “/” as separator after the “s”, sed will expect that later in the expression too, like this:

`sed ‘s%/%SLASH%g’ will replace all instances of a “/” in the text with “SLASH”.

source
Sort:hotnewtop