Python script that make my .bash_aliases file MUCH more readable and clear
print
f-Strings are a great and convenient tool for including variables and calculations in strings. I'd say they're generally not needed when printing only variables. For example
print(f'{bcolors.WARNING}{line}{bcolors.ENDC}')

could become
print(bcolors.WARNING, line, bcolors.ENDC, sep='')

However I'm not sure which of the two is more pythonic, I personally prefer the latter for readability.
You could also consider pulling out formatting into seperate variables to increase readability.
HEADER_FORMAT = &quot;&quot;.join((bcolors.HEADER, bcolors.UNDERLINE, bcolors.BOLD, &quot;{}&quot;, bcolors.ENDC))

print(HEADER_FORMAT.format(line))


in vs. startswith
I'd recommend using str.startswith instead of str in str for checking prefixes.
if r'##' in line:

becomes
if line.startswith(r&quot;##&quot;):

This is less error-prone and conveys your intentions more explicitly, without the need to look at the source file. As there aren't any escape characters in your prefixes, you also don't need to make it a raw string. You can simply drop the r:
if line.startswith(&quot;##&quot;):