複数のサーバー間で for ループで sed コマンドを使用する

複数のサーバー間で for ループで sed コマンドを使用する

複数のホストで同じテキストファイルを操作しようとしています。現在持っているコマンドは次のとおりです。

for host in $(cat /etc/hosts | grep text | cut -d' ' -f 1 | sort -u); do
    ssh $host \
    sudo sed -i "s/enabled = 1/enabled = 0/" /etc/yum.repos.d/testing.repo
done

sedコマンド自体は問題なくホストシステムでローカルに実行されますが、ここで実行すると次の結果が表示されます。

sed: -e expression #1, char 9: unterminated `s' command

私は何が間違っていましたか?

ベストアンサー1

この試み、

for host in $(grep test /etc/hosts | cut -d' ' -f 1 | sort -u); do
    ssh $host 'sudo sed -i "s/enabled = 1/enabled = 0/" /etc/yum.repos.d/testing.repo'
done

リモートコマンドを引用符で囲む必要があります。

おすすめ記事