我需要通过SSH连接到一系列设备,修改一些文件,更改设备名称和网络设置。
这些文件包含如下数据:
NETWORK_ETH1_CLIENTIP_LIST='10.47.19.182'
HOSTNAME="c50"我使用putty在系统中使用ssh,然后使用nano修改每个文件。
我相信编写脚本会很容易,但是我不太确定我想要做什么的linux命令。
linux中有没有我可以使用的命令来搜索指定文本文件中的字符串,例如" HOSTNAME“并将找到的行替换为新的主机名?
我目前正在使用plink进行一些更简单的系统检查,这些检查是从批处理文件中调用的:
plink.exe -pw PASSWORD USERNAME@192.168.77.77 -m Commands/SystemChecks.txt已省略用户名和密码。SystemChecks包含一些基本的查找表和ping命令等,用于测试设备是否被成功修改。
我需要的帮助是找出一种方法来查找和替换数据(主机名,ip地址,网络掩码等)使用linux命令。
发布于 2013-01-23 10:40:34
您可以使用sed去掉这一行,然后使用echo重写内容。我相信可能有更好的方法来替换仅值
target='/path/to/target_file'
sed -i "/HOSTNAME/d" $target
echo "HOSTNAME=\"newhostname\"" >> $target发布于 2013-01-23 10:38:24
echo 'HOSTNAME="c50"' | sed 's/HOSTNAME="c50"/HOSTNAME="c60"/g'使用命令sed,您可以轻松地实现替换。
假设您有一个名为file.conf的文件,并且该文件中包含如下内容:
NETWORK_ETH1_CLIENTIP_LIST='10.47.19.182'
HOSTNAME="c50"因此,如果您想将值HOSTNAME="c50"更改为HOSTNAME="d10000",您可以通过以下方式使用sed:
sed -i 's/HOSTNAME="c50"/HOSTNAME="d10000"/g' file.confhttps://stackoverflow.com/questions/14471523
复制相似问题