远程sed替换文本的问题

fp2001 2010-04-06 11:22:56
我写了一个脚本目的是通过循环替换远程的文本
#!/bin/bash
count="0"
for i in `cat ./list/USA`
do
echo $i
tmp=(count/3)
group=Asia_Group${tmp}
ssh nudt_iVCE@$i sed -i "s/USA_Group01/$group/g" /home/username/FTtest/FTRETRY/rbslave.xml
index=($tmp+1)
"ssh nudt_iVCE@$i sed -i "s/ssss/$index/g" /home/username/FTtest/FTRETRY/rbslave.xml"
done

目的是通过
ssh nudt_iVCE@$i sed -i "s/USA_Group01/$group/g" /home/username/FTtest/FTRETRY/rbslave.xml 来替换远程rbslave.xml中的内容。

但是执行的报了两个错:
1.
sed: -e expression #1, char 32: unknown option to `s'

2.如果我把双引号改成但引号又会报找不到rbslave.xml文件。我估计是在本地找rbslave.xml了而不是远程。
如何解决这个问题呢?
...全文
259 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
txyjian 2010-04-09
  • 打赏
  • 举报
回复
bash的算术错误
算术表达式应该由"$((" 和 "))" 括起
tmp=(count/3) 改成 tmp=$(($count/3)) 就可以了

附加:
错误发生的原因是:
tmp=(count/3)
group=Asia_Group${tmp}
得到的group是Asia_Groupcount/3
替换s/USA_Group01/$group/g后得到s/USA_Group01/Asia_Groupcount/3/g
所以报错了
linkejin 2010-04-09
  • 打赏
  • 举报
回复
我也来顶下啊
iisbsd 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 fp2001 的回复:]
ssh nudt_iVCE@$i sed -i "s/USA_Group01/$group/g" /home/username/FTtest/FTRETRY/rbslave.xml
[/Quote]

ssh nudt_iVCE@$i "sed -i \"s/USA_Group01/$group/g\" /home/username/FTtest/FTRETRY/rbslave.xml"
steptodream 2010-04-07
  • 打赏
  • 举报
回复
我是来顶草的

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧