小编Dan*_*oNC的帖子

如何用sed一次替换多个模式?

假设我有'abbc'字符串,我想替换:

  • ab - > bc
  • bc - > ab

如果我尝试两次替换,结果不是我想要的:

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是一个流编辑器并且它的替换是贪婪的,我认为我需要使用一些脚本语言.

syntax replace sed

190
推荐指数
6
解决办法
26万
查看次数

如何更改实例的__cmp__函数(不在类中)?

如何更改实例的__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)

python metaprogramming cmp

5
推荐指数
1
解决办法
409
查看次数

标签 统计

cmp ×1

metaprogramming ×1

python ×1

replace ×1

sed ×1

syntax ×1