首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于将一个文件中的字符串替换为另一个文件的内容的命令

问用于将一个文件中的字符串替换为另一个文件的内容的命令
EN

Stack Overflow用户
提问于 2019-08-23 22:46:04
回答 2查看 42关注 0票数 1

文件/var/cpanel/mainip仅包含我的服务器的主IP。文件/etc/csf/csf.block list包含防火墙阻止列表的列表,文件的一部分包含示例IP地址为1.2.3.4的行

通常,在新服务器上安装CSF防火墙软件时,我会手动将示例IP地址替换为服务器的主IP地址。这是从某些提供商成功获取防火墙阻止列表所必需的。为了简化设置过程,我想使用一个命令将示例IP地址1.2.3.4替换为我的主服务器IP,这样我就不必手动执行此操作。

我已经尝试了sed命令,我想我已经接近正确的命令了,但还不完全正确。你能帮帮忙吗?

代码语言:javascript
复制
sed -i '/1.2.3.4/ { r /etc/csf/csf.blocklists }' /var/cpanel/mainip

此代码不正确,因为它输出一个错误:

sed:-e表达式#1,字符0:不匹配的`{‘

成功后,应将1.2.3.4替换为实际的服务器IP地址。

EN

回答 2

Stack Overflow用户

发布于 2019-08-23 22:51:37

代码语言:javascript
复制
sed -i "s/1\.2\.3\.4/$(</var/cpanel/mainip)/"  /etc/csf/csf.blocklists

应该能胜任这项工作。

票数 1
EN

Stack Overflow用户

发布于 2019-08-24 00:53:06

您只需指定

sed -i '/1.2.3.4/r /etc/csf/csf.blocklists' /var/cpanel/mainip

事实上,甚至连空格都是可选的;下面的也可以

sed -i '/1.2.3.4/r/etc/csf/csf.blocklists' /var/cpanel/mainip

您只需指定模式/1.2.3.4/,然后再指定一个命令

该命令可以是用于读取r、用于写入的w、用于删除的d等等

删除条目的d示例如下

sed -i '/1.2.3.4/d' /var/cpanel/mainip

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57628549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档