我想做以下替换
sed 's/$/)/' python2.py
条件是一行包含print(
但它可能不包含print("""
。
它不应该匹配的行将是
print("""Some multi line text etc...
虽然应该匹配这样的行
print("Some single line text"
现在很容易匹配一个或排除另一个,但我无法将这两个条件组合到一个命令中。例如
sed -ne '/print(/s/$/)/p' python2.py
是否匹配所有行,print(
但也匹配我想省略的
行print("""
。另一方面,我可以用print("""
with跳过所有行
sed -ne /print("""/! s/$/)/p python2.py
但这包括所有其他行,即使是那些没有print(
. 有没有办法将这两个条件结合起来,以便仅在两个条件都为真时才应用替换?
作为说明:
我知道我可以进行两次 sed 运行,我首先对所有print(
行进行替换,然后再进行第二次 sed 运行,我仅在行中删除新替换)
的print("""
行。我想知道是否可以一次性完成,所以这不是我正在寻找的答案。