带有正则表达式,搜索和替换的SED命令

时间:2017-09-16 18:35:34

标签: unix sed

我想使用python代码文件中的sed命令删除所有打印语句(print e和print(e)除外), 我的示例命令是:

sed -i.bak 's/^print\(s+\)\(["]\).*//;/^$/d' test.py

文件的示例内容是:

print "this is comment"
try:
    a=[1,2,3]
    print a
    print 'this is comment again'
    return a
except Exception as e:
    print e
    print (e)

我的查询是删除除print e和print(e)之外的所有print语句,我的命令在这种情况下不起作用,可以任何一个建议好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

sed 解决方案:

sed '/print/{/print (*e/!d;}' test.py
  • /print/ - 处理print语句

  • 的行
  • /print (*e/!d - 删除printe

  • 后面没有(e的行

输出:

try:
    a=[1,2,3]
    return a
except Exception as e:
    print e
    print (e)