如何在多个文件中使用grep和set来替换buggy python

时间:2013-10-28 04:30:02

标签: unix python-3.x sed grep

我收集了python文件,除了格式化之外,还使用了以下尝试

try:
    # some code....
except Exception, e:
    # some exception code....

这是一个简单的修复,应该看起来像

try:
    # some code....
except SomeException as e:
    # some exception code....

我尝试使用该命令更改所有这些文件中的文本

grep -Erl "(*.)(, e:)" | xargs sed -i's/\(*.\)\(, e:\)/\1 as e:/'

但它给了我一个错误。

2 个答案:

答案 0 :(得分:1)

您可以试试sed

sed -i.bak '/except/{ s/\(except\) \([^,]\+\)\(, e:\)/\1 \2 as e:/}' your_python.py

这将使用.bak扩展名备份原始文件。

答案 1 :(得分:0)

要将零个或多个字符与正则表达式匹配,请使用.*,而不是*.。此外,您需要-ised命令之间的空格。