假设我有'abbc'字符串,我想替换:
如果我尝试两次替换,结果不是我想要的:
echo 'abbc' | sed 's/ab/bc/g;s/bc/ab/g'
abab
Run Code Online (Sandbox Code Playgroud)
那么我可以使用什么sed命令替换如下?
echo abbc | sed SED_COMMAND
bcab
Run Code Online (Sandbox Code Playgroud)
编辑:实际上文本可能有两个以上的模式,我不知道我需要多少替换.既然有一个答案说这sed是一个流编辑器并且它的替换是贪婪的,我认为我需要使用一些脚本语言.
如何更改实例的__cmp__函数(不在类中)?
例如:
class foo:
def __init__(self, num):
self.num = num
def cmp(self, other):
return self.num - other.num
# Change __cmp__ function in class works
foo.__cmp__ = cmp
a = foo(1)
b = foo(1)
# returns True
a == b
# Change __cmp__ function in instance that way doesnt work
def cmp2(self, other):
return -1
a.__cmp__ = cmp2
b.__cmp__ = cmp2
# Raise error
a == b
#Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
#TypeError: cmp2() …Run Code Online (Sandbox Code Playgroud)