gpt4 book ai didi

linux - 如何使用sed编辑保存在字符串中的文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:49:41 24 4
gpt4 key购买 nike

我需要使用 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 使用。

关于linux - 如何使用sed编辑保存在字符串中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35429125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com