• 1 Post
  • 280 Comments
Joined 2 years ago
cake
Cake day: June 26th, 2023

help-circle
rss















  • As I see, you’ve already got an answer how to convert text to lower case. So I just tell you how to replace all occurrences of %20 with -. You need to repeat substitution until no matches found. For such iteration you need to use branching to label. Below is sed script with comments.

    :subst                                         # label
    s/(\[[^]]+\]\([^)#]*#[^)]*)%20([^)]*\))/\1-\2/ # replace the first occurrence of `%20` in the URL fragment
    t subst                                        # go to the `subst` label if the substitution took place
    

    However there are some cases when this script will fail, e. g. if there is an escaped ] character in the link text. You cannot avoid such mistakes using only simple regexps, you need a full featured markdown parser for this.