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());
}