I was editing some markdown and had to insert a new figure in the middle. The problem is that this document already has an explicit figure numbering (e.g., “Figure 5”), so changing tens of figures felt dull. I like to run small (GNU) awk scripts for this type of tasks.
# update_figures.awk
{
if (match($0, "Figure ([0-9]+)", num)){
if (num[1] > after)
gsub("Figure ([0-9]+)", "Figure " num[1] + increase_by)
};
print $0
}
This changes Figure X into Figure X + increase_by starting after the variable “after”. And we can run it as follows:
awk -v after=4 -v increase_by=1 -f update_figures.awk input_file.md
To edit the file in-place add the -i flag.