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

C# 使用ssh.net长文本执行命令如何解析此退格?,c#,shell,ssh.net,C#,Shell,Ssh.net,我有一个大型项目,通过SSH.NET 我有一个问题,当我执行shell.Read()和output时,我得到的输出类似于 "description <XC descritption long , id123123123 IP:120.120.120.20 VC\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\

我有一个大型项目,通过
SSH.NET

我有一个问题,当我执行
shell.Read()
和output时,我得到的输出类似于

"description <XC descritption long , id123123123 IP:120.120.120.20 VC\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b$ <XC descritption long, id123123123  IP:120.120.120.20 VCI         \b\b\b\b\b\b\b\b\bD:2500\r\ndescription <XC descritption long, id123123123  IP:120.120.120.20 VCID:2500\r\n  ^\r\n% Invalid input detected at '^' marker.\r\n\r\ngateway2#"

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

我将使用以下方法:

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());
}
publicstaticstringparsebackspaces(字符串输入)
{
列表字符=新列表(输入);
int指数=0;
while(索引<字符数)
{
int back1=索引-1;
如果(返回1>=0&&characters[index]='\b')
{
字符。删除范围(back1,2);
指数=1;
继续;
}
else if(字符[索引]='\b')
{
字符。删除(索引);
继续;
}
索引++;
}
返回新字符串(characters.ToArray());
}

这里有一把小提琴,显示了用这种方法解析过的字符串:

谢谢-最简单的解决方案是最好的!我试图一次抓住所有问题,这是我的错误;D
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());
}