首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写linux命令脚本以修改文件中的数据

问编写linux命令脚本以修改文件中的数据
EN

Stack Overflow用户
提问于 2013-01-23 10:34:29
回答 2查看 1.4K关注 0票数 1

我需要通过SSH连接到一系列设备,修改一些文件,更改设备名称和网络设置。

这些文件包含如下数据:

代码语言:javascript
复制
NETWORK_ETH1_CLIENTIP_LIST='10.47.19.182'

HOSTNAME="c50"

我使用putty在系统中使用ssh,然后使用nano修改每个文件。

我相信编写脚本会很容易,但是我不太确定我想要做什么的linux命令。

linux中有没有我可以使用的命令来搜索指定文本文件中的字符串,例如" HOSTNAME“并将找到的行替换为新的主机名?

我目前正在使用plink进行一些更简单的系统检查,这些检查是从批处理文件中调用的:

代码语言:javascript
复制
plink.exe -pw PASSWORD USERNAME@192.168.77.77 -m Commands/SystemChecks.txt

已省略用户名和密码。SystemChecks包含一些基本的查找表和ping命令等,用于测试设备是否被成功修改。

我需要的帮助是找出一种方法来查找和替换数据(主机名,ip地址,网络掩码等)使用linux命令。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-23 10:40:34

您可以使用sed去掉这一行,然后使用echo重写内容。我相信可能有更好的方法来替换仅值

代码语言:javascript
复制
target='/path/to/target_file'
sed -i "/HOSTNAME/d" $target
echo "HOSTNAME=\"newhostname\"" >> $target
票数 1
EN

Stack Overflow用户

发布于 2013-01-23 10:38:24

代码语言:javascript
复制
echo 'HOSTNAME="c50"' | sed 's/HOSTNAME="c50"/HOSTNAME="c60"/g'

使用命令sed,您可以轻松地实现替换。

假设您有一个名为file.conf的文件,并且该文件中包含如下内容:

代码语言:javascript
复制
NETWORK_ETH1_CLIENTIP_LIST='10.47.19.182'
HOSTNAME="c50"

因此,如果您想将值HOSTNAME="c50"更改为HOSTNAME="d10000",您可以通过以下方式使用sed:

代码语言:javascript
复制
sed -i 's/HOSTNAME="c50"/HOSTNAME="d10000"/g' file.conf
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14471523

复制
相关文章

相似问题

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