Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Perl中从SSH输出中剥离颜色细节_Perl_Expect - Fatal编程技术网

在Perl中从SSH输出中剥离颜色细节

在Perl中从SSH输出中剥离颜色细节,perl,expect,Perl,Expect,我有一个expect脚本,它通过SSH登录到pfSense/BSD框中,由Perl脚本调用,并将输出传递回Perl脚本(RANCID插件) 目前我得到以下输出 + spawn ssh -2 -x -l rancid my-pfsense-device.fqdn.com + Password: + Last login: Wed Dec 19 10:28:47 2012 from 89.21.224.35 + Copyright (c) 1980, 1983, 1986, 1988, 1990,

我有一个expect脚本,它通过SSH登录到pfSense/BSD框中,由Perl脚本调用,并将输出传递回Perl脚本(RANCID插件)

目前我得到以下输出

+ spawn ssh -2 -x -l rancid my-pfsense-device.fqdn.com
+ Password:
+ Last login: Wed Dec 19 10:28:47 2012 from 89.21.224.35
+ Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
+       The Regents of the University of California.  All rights reserved.
+
+
+  [0;1;33m[ [0;1;37m2.0.1-RELEASE [0;1;33m] [0;1;33m[ [0;1;37mrancid [0;1;31m@ [0;1;37mmy-pfsense-device.fqdn.com [0;1;33m] [0;1;32m/home/rancid [0;1;33m( [0;1;37m1 [0;1;33m) [0;1;36m [0;1;31m: [0;40;37m
uname -a
+ FreeBSD my-pfsense-device.fqdn.com 8.1-RELEASE-p6 FreeBSD
8.1-RELEASE-p6 #0: Mon Dec 12 18:59:41 EST 2011
root@FreeBSD_8.0_pfSense_2.0-snaps.pfsense.org:/usr/obj./usr/pfSensesrc/src/sys/pfSense_wrap.8.i386
 i386
+  [0;1;33m[ [0;1;37m2.0.1-RELEASE [0;1;33m] [0;1;33m[ [0;1;37mrancid [0;1;31m@ [0;1;37mmy-pfsense-device.fqdn.com [0;1;33m] [0;1;32m/home/rancid [0;1;33m( [0;1;37m2 [0;1;33m) [0;1;36m [0;1;31m: [0;40;37m
cat /cf/conf/config.xml
+ <?xml version="1.0"?>
+ <pfsense>
但这有多种颜色。正如您在上面的输出中所看到的,SSH被传递了所有着色信息,然后这些信息被输出到我的expect脚本。在上面的输出中,同一行看起来像这样

[0;1;33m[ [0;1;37m2.0.1-RELEASE [0;1;33m] [0;1;33m[ [0;1;37musername [0;1;31m@ [0;1;37mmy-pfsense-device.fqdn.com [0;1;33m] [0;1;32m/home/username [0;1;33m( [0;1;37m1 [0;1;33m) [0;1;36m [0;1;31m: [0;40;37m

有没有办法让我把它写下来?它是一种标准的颜色格式,并且可以被regex'out,或者可能我需要更改SSH客户端上的一个选项以忽略颜色信息?

终端是否可以显示颜色取决于
术语
环境变量。它通常设置为
xterm
linux
screen
(可能带有
-256color
后缀以获得更好的效果)。希望另一端的shell(更重要的是:shell初始化脚本)注意
术语
,并且只有在调用方端的终端实际支持颜色时才尝试使用颜色

您可以在调用
ssh
之前尝试设置该变量。对于“没有交互和颜色功能的终端”,通常将其设置为
dumb

[0;1;33m[ [0;1;37m2.0.1-RELEASE [0;1;33m] [0;1;33m[ [0;1;37musername [0;1;31m@ [0;1;37mmy-pfsense-device.fqdn.com [0;1;33m] [0;1;32m/home/username [0;1;33m( [0;1;37m1 [0;1;33m) [0;1;36m [0;1;31m: [0;40;37m