C# 通过 SSH 从文件中删除行

C# delete line from file over SSH

我正在使用 Renci SshNet 从我正在编写的 C# 程序中通过 SSH 访问文件。

使用我的应用程序中的数据,我在文本文件中创建了一行,如下所示。

    sshclient.Connect();
                string data1 = textBox1.Text + ":";
                string data2 = textBox2.Text + ":";
                string ip = "${SSH_CLIENT%% *}" + ":";
                string data = ("\necho " + ip + data1 + data2 " >> file.txt");

                var cmd = sshclient.CreateCommand(data);
                cmd.Execute();
                sshclient.Disconnect();

当我启动我的应用程序时,上面的代码导致一行被添加到文本文件中,这正是我想要的。

    123.456.789.000:data1:data2:

我想在我的应用程序关闭时从文本文件中删除该行,但到目前为止我运气不佳。

下面是我试过的...

    sshclient.Connect();
                textBox3.Text = new WebClient().DownloadString("http://icanhazip.com");
                string ip = textBox3.Text;
                string del = ("sed -i '/" + ip + "/ d' file.txt");

                var cmd = sshclient.CreateCommand(del);

                cmd.Execute();
                sshclient.Disconnect();

从网络读取并添加到文本框时,文本框确实正确显示了 ip。 但是如果我使用上面的命令,除非我在文本框中手动输入 ip,否则该行不会被删除。

我也试过了

    string del = ("sed -i '/${SSH_CLIENT%% *}/ d' file.txt"); 

我做错了什么?

IP 的末尾似乎有一个 space,我在文本框中看不到它。