Хотя вы могли бы использовать sed, и я обычно буду использовать sed, только если мне нужно что-то только для записи (то есть, оно только должно работать и не нуждается в обслуживании).
Я считаю, что библиотека регулярных выражений Python более доступна (и дает возможность добавлять более мощные конструкции).
import re
import sys
def href_repl(matcher):
"replace the matched URL with a hyperlink"
# here you could analyze the URL further and make exceptions, etc
# to how you did the substitution. For now, do a simple
# substitution.
href = matcher.group(0)
return '<a href="{href}">{href}</a>'.format(**vars())
text = open(sys.argv[1]).read()
url_pattern = re.compile(re.escape('http://') + '[^ ]*')
sys.stdout.write(url_pattern.sub(href_repl, text))
Лично мне гораздо легче читать и поддерживать.