运行sed
命令时,将删除小于号。
a::b<type::value> & d
a::b<ns::type::value>& d
sed -i 's/[^:]type/changed::type/g'
产生
a::bchanged::type::value> & d
a::b<ns::type::value>& d
我希望实际上能得到以下信息:
a::b<changed::type::value> & d
a::b<ns::type::value>& d
为什么删除小于号?我该如何保存?
答案 0 :(得分:3)
该符号被删除,因为它与[^:]
“不是冒号”匹配,作为要替换的字符串的一部分。您可以通过捕获并放回它来绕开它:
sed -i 's/\([^:]\)type/\1changed::type/g'