[英]How to edit a file saved in string using sed?
我需要使用sed編輯保存在字符串中的文件。 根據下面的例子,我想在php.ini文件中更改一些模式。 下面的示例僅允許更改字符串中保存的內容。
[root@server ~]# PHPINI=/etc/php.ini
[root@server ~]# sed "s/somepattern/changedpattern/" <<< "$PHPINI"
有人可以幫忙嗎? 提前致謝。
您正在使用herestring語法,該語法在標准輸入上傳遞字符串。 您應該將文件的名稱作為參數傳遞:
sed 's/somepattern/changedpattern/' /etc/php.ini
要覆蓋現有文件,標准方法是寫入臨時文件,然后覆蓋原始文件:
sed 's/somepattern/changedpattern/' /etc/php.ini > tmp && mv tmp /etc/php.ini
某些版本的sed支持“就地”編輯(在后台或多或少相同):
sed -i.bak 's/somepattern/changedpattern/' /etc/php.ini
這將創建帶有.bak
后綴的原始文件的備份。
如果文件名包含在變量中,那么只需使用它
php_ini=/etc/php.ini
sed -i.bak 's/somepattern/changedpattern/' "$php_ini"
請注意我使用小寫變量名。 應保留大寫的shell以供shell使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.