2016-12-01 73 views
0

帮助我怀疑是非常简单的将不胜感激。以编程方式修改文本文件中的特定行

我希望能够以编程方式更改配置文件中的某一行。具体而言,文件看起来像

...Other lines... 
# The name of the database to mount 
dbms.active_database=test.db 
...Other lines... 

我希望能够取代“test.db的”与“production.db”等其他程序可以添加或删除线,所以我不能指望一个一致的行号,但没有其他行包含“dbms.active_database =”

我该如何做到最好?

谢谢。

+0

什么编程语言,你想用它来编辑它?使用Python将是快速和简单 –

+0

Python会没事的,但能够通过shell编程(sed或awk ??)来做到这一点会更好。 谢谢。 – ghoetker

回答

1

随着SED:

sed 's/\(^dbms\.active_database=\)test\.db/\1production.db/' file 
1
awk -v name0fNewDb="HEythere.db" 'BEGIN{FS=OFS="="}/dbms.active_database/{$2=name0fNewDb}1' 
...Other lines... 
# The name of the database to mount 
dbms.active_database=HEythere.db 
...Other lines... 

如果我的理解问题的陈述权,这会帮助你在做仅能在包括"dbms.active_database"线的变化。它将在哪里取代=的正确部分。 name0fNewDb是您可以为其分配任何文本的变量。

相关问题