2015-03-19 41 views
1

我想要腳本文件,將安裝VirtualBox無頭。我缺乏完成它的一部分。 phpVirtualBox要求你編輯config.php文件並更改密碼。 我想修改的部分是:插入一行包含引號'使用sed

/* Username/Password for system user that runs VirtualBox */ 

var $username = 'vbox';<br> 
var $password = 'pass'; **********This Line***************** 

我讀過(人SED),看着所有在互聯網上的解決方案,沒有運氣。

我已經嘗試了多個sed命令,但沒有人會插入'刻度標記。

我能夠得到除(')以外的所有東西。 這些標記需要圍繞密碼才能使config.php文件正常工作。

我可以刪除整個行,然後試圖插入新行只是插入:

var $password = pass ; 

任何人都可以請幫我找出如何插入全線:

var $password 'pass'; 

我會發布完整的腳本,任何人都有興趣使用它。

回答

1

只要保持'不變,更換裏面的值:

echo "var \$password = 'pass';" | sed "[email protected]'pass'@'newpass'@" 

結果

var $password = 'newpass'; 
+0

echo「var \ $ password ='pass';」 | sed「s @'傳遞'@'newpass'@」config.php> config.php1。這創建了我想要的文件,我需要的更改。然後刪除原始文件並將config.php1重命名爲config.php。謝謝。 – 2015-03-30 22:06:30

0
echo "var \$password = 'pass';"|sed "s/\(var \$password = '\)[^']\+';/\1changed_pass\';/g" 

它的內容var $password= 'sometext';匹配,保持var $password= '\1,把您的新密碼旁邊\1然後加左邊部分';

+0

你好,你可能想補充一些關於你提出的解決方案的原因的解釋。 – 2015-03-19 09:00:17

0

只是用的sed是這樣的:

在Mac OS X:

sed -i '' "s/var $password =.*/var $password = 'newpass'/" ~/yourscript.sh 

在Ubuntu:

sed -i "s/var $password =.*/var $password = 'newpass'/" ~/yourscript.sh 

Yourscript只是包含你想要的配置文件覆蓋,在這種情況下,包含密碼屬性

我希望你覺得這個答案有幫助。

謝謝。

+0

希望只是密碼不包含元字符(sed POV) – NeronLeVelu 2015-03-19 06:40:02