2013-12-10 211 views
1

我正在使用Powershell将ssh放入我的Linux服务器并拖曳我的apache日志文件。如何从PowerShell输出中删除多余的空格?

SSH [email protected] -p800 -i ..ssh \ id_rsa_test尾/无功/日志/的httpd/access_log中-fn0> test.log中

当拖尾文本看起来不错,当打开文件我把文本输入到它看起来很好。

我管道输出失败的应用程序。当我将文件拖尾时,我会看到每个由空格分隔的单个字符。

使用不带参数的out-file可以做同样的事情。当我将记事本中文件的内容剪切并粘贴到另一个记事本文件时,其他应用程序可以读取它。我怎样才能解决这个问题?

这里就是我所指的样本:

dØ米的I N。 C o m 7 2。 2 2 4。 2 4 9。 1 7 - - [1 0/D e c/2 0 1 3:0 7:5 0:5 6 - 0 6 0 0]“GET/vane/v 查看。php?f = 1 & sid = 3 b 4 3 bd 9 9 9 a 7 db 2 0 c 6 6 9 7 5 b 2 3 8 2 4 a 9 6 1 9 HTTP/1.1“2 0 0 9 3 7 6”http:// www .php?f = 1 & t = 8 0 2 3 & p = 3 4 3 4 5 0 & sid = 3 b 4 3 bd 9 9 9 a 7 db 2 0 c 6 6 9 7 5 b 2 3 8 2 4 a 9 6 1 9“” M ozilla/4.0(compatible; MSIE 8.0;
W indows NT 6.0; WOW 6 4; T rident/4 。0; GTB 7.5; S L C C 1; 。 N E T C L R 2。 0。 5 0 7 2 7;
M e d i a C e n t e r P C 5。 0; 。 N E T C L R 3。 5。 2 1 0 2 2; 。 N E T C L R 3。 5。 3 0 7 2 9; M D D C; 。 N E T C L R 3。 0。 3 0 7 2 9; 。 N E T 4。 0℃; B R I/1; B RI/2)“domain.5.9.110.6.24 1 - - [1 0/D ec/2 0 1 3:0 7:5 0:5 8 - 0 6 0 0] “GET/ro 机器人。 t x t H T T P/1。 0“2 0 0 - ” - “”M o z i l l a/5。 0(兼容; MJ 1 2 BOT/V 1 4 4; HTTP:。。。。/ /万维网雄伟1 2 CO英国/机器人的PHP +?)“

+0

你能告诉你哪里管进入PowerShell的 –

+1

Unicode的,让我介绍Damiel的代码? ?Powershell的输出是默认的Unicode,你看到的是双字节字符 – vonPryz

+0

以上以ssh开头的命令在powershell中,我打开Powe rshell,然后SSH入Linux服务器,并输出到第三方应用程序或直接到一个文件。 我使用msysgit进行ssh。 –

回答

1

如果管我们的输出虽然出文件,设置conent,或附加内容,您可以使用-Encoding参数,将其强制ASCII:

ssh [email protected] -p800 -i ..ssh\id_rsa_test tail /var/log/httpd/access_log -fn0 | Add-Content test.log -encoding ASCII 

ssh [email protected] -p800 -i ..ssh\id_rsa_test tail /var/log/httpd/access_log -fn0 | Set-Content test.log -encoding ASCII 

ssh [email protected] -p800 -i ..ssh\id_rsa_test tail /var/log/httpd/access_log -fn0 | Out-File test.log -encoding ASCII 
+0

这适用于保存到文件,也是美妙的。我使用out-file -encoding ASCII。但我仍然需要将输出实时输出到其他应用程序。如何在管道中将unicode更改为ASCII? –

+0

尝试:app1 | out-string | app2 – mjolinor

+0

昨天晚上试了一下,但是出文件要求保存到一个文件中。 –

相关问题