使用长文本执行命令 ssh.net 如何解析此退格键?



我有一些大型项目,可以通过SSH.NET连接到许多设备

我有一些问题,当我做shells.Read()并且输出有一些长线时,我得到的输出是这样的

"description <XC descritption long , id123123123 IP:120.120.120.20 VCbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb$ <XC descritption long, id123123123  IP:120.120.120.20 VCI         bbbbbbbbbD:2500rndescription <XC descritption long, id123123123  IP:120.120.120.20 VCID:2500rn  ^rn% Invalid input detected at '^' marker.rnrngateway2#"

我用谷歌搜索了一下,发现如果它不适合这个"虚拟终端窗口"的一行,这是发送长行输出的某种方式?

我的问题是如何在没有任何实际文本框的情况下以编程方式解析它,这些文本框会自动执行此操作,以便我只得到我应该得到的东西

description <XC descritption long, id123123123  IP:120.120.120.20 VCID:2500rn  ^rn% Invalid input detected at '^' marker.rnrngateway2#"

? 我需要计算这个b并根据它们的数量进行一些切割?还是某种"适当"的方法?

谢谢和问候!

您必须解析退格符并删除前面的字符(如果存在(。

我将使用如下方法:

public static string ParseBackspaces(string input)
{
List<char> characters = new List<char>(input);
int index = 0;
while (index < characters.Count)
{
int back1 = index - 1;
if (back1 >= 0 && characters[index] == 'b')
{
characters.RemoveRange(back1, 2);
index = back1;
continue;
}
else if (characters[index] == 'b')
{
characters.RemoveAt(index);
continue;
}
index++;
}
return new String(characters.ToArray());
}

下面是一个小提琴,显示了通过此方法解析后的字符串: https://dotnetfiddle.net/79U8sH

最新更新