2016-12-01 111 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是您可以爲其分配任何文本的變量。

相關問題