删除集群所有节点上的最后一行bashrc文件

时间:2015-03-23 08:15:36

标签: awk ssh sed

我有一群24 nodes。我想删除所有节点上的bashrc文件的最后一行

这就是我的尝试:

for (( i=1; i<25; i++ ))    
do    
  ssh node$i "sed -i '$d' ~/.bashrc"    
done

我也试过以下变种

for (( i=1; i<25; i++ ))    
do    
  ssh node$i    
  sed -i '$d' ~/.bashrc    
  exit    
done

for (( i=1; i<25; i++ ))    
do    
  ssh node$i 'sed -i '$d' ~/.bashrc'    
done

但是shell没有正确解释$d命令的sed。 相反,本地bashrc文件正在更新。 这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

试试这个:

for (( i=1; i<25; i++ ))    
do    
  ssh node$i "sed -i '\$d' ~/.bashrc"    
done

您需要转义$。也希望你的node$i是正确的!