我有一些大型项目,可以通过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