簡體   English   中英

如何使用sed編輯保存在字符串中的文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM