2016-04-07 62 views
0

我有一個大的配置文件,我需要搜索一個變量。當我找到它時,我需要用特定的行替換包含該變量的整行(比如123456)。 舉例: config.file當匹配來自cli的正則表達式時,vim/perl插入行

$var bla bla 
    bla bla $var 
    simple line, no match 

config.file的sed後:

123456 
    123456 
    simple line, no match 

編輯: 我需要這樣的東西vim -c '%s/$var/123456/gc' -c 'wq' config.file,但這只是取代了變量,行了,而不是整條生產線。

是否有可能要求用戶確認每場比賽$var?我需要在cli中運行它,因爲我想使它成爲腳本的一部分。

任何幫助,非常感謝。

+0

了你已經足夠長的時間知道,Stack Overflow是約gettiing答案* *具體的問題。這是對程序要求的一個非常寬鬆的描述,你似乎沒有爲自己嘗試任何東西 – Borodin

+2

在Vim中,這是一個單一的命令:':g/$ var/s /.*/ 123456/c',但你在Perl腳本中尋求一個解決方案,所以我很困惑,爲什麼這個標籤與Vim一樣。正如@Borodin所說,如果它確實是一個帶有用戶確認的Perl解決方案,請提供更多詳細信息並顯示您已經嘗試過的操作。 – sidyll

+0

@Borodin:我很抱歉產生混淆。我更新了我的問題。 – Alex

回答

1

使用:g命令來查找包含$var然後:s線整條生產線:

vim -c 'g/$var/s/.*/123456/c' -c 'wq' config.file 
+0

謝謝你,這個伎倆。 – Alex