linux sed 如何替换单引号外的内容?单引号内的内容不变。

如例子:
$ echo -e "\nabc defg hijk 'abc'\nweq yui 'ppio' ip trtu\n"

abc defg hijk 'abc'
weq yui 'ppio' ip trtu

结果为:

ABC DEFG HIJK 'abc'
WEQ YUI 'ppio' IP TRTU

提醒:在字符串查找替换问题域内,正则表达式不是万能的;但有限状态自动机是万能的。