【发布时间】:2018-05-08 13:59:08
【问题描述】:
我找不到一个我想要的答案。
我习惯用 bash 编写脚本,但我注意到 bash 在处理大型操作时效率太低,所以我正在用 python 重写我的代码。
但我是 python 的菜鸟!所以我谷歌了很多,但在这里我有一个问题...... 我的 bash 脚本中有很多 sed 操作,我想知道在 python 中重新创建它的方法(这将是重写我所有 sed 操作的起点):
sed -i -e "s/\(log_min_messages = \).*/\1notice/" "/opt/PostgreSQL/9.6/data/postgresql.conf"
用“notice”替换该文件中“log_min_messages”之后的所有内容。
基本上就是打开 postgresql.conf 文件,搜索匹配模式“log_min_messages = *”(其中 * 表示 '=' 之后的内容无关紧要)并将 '*' 替换为字符串 'notice'。
例子:
之前
log_min_messages = something
在 sed 命令之后:
log_min_messages = notice
我想知道我是否必须使用're'?
编辑:一个想法是在 python 脚本中实现 Perl 命令,所以如果有人知道如何在 perl 中执行此操作,无论如何都会是一个很好的答案
【问题讨论】:
-
也许 Perl 更适合?
-
考虑过了,不幸的是这个脚本有很多事情要做......不仅仅是“sedding”......顺便说一下我可以通过shell从python调用一些perl命令......在这种情况会是什么? (也编辑问题)
-
可能有些
pythoners对bash不熟悉,所以你应该简单解释一下,并举一些例子。 -
编辑了问题,现在应该更清楚了:)
标签: python regex string bash sed