红宝石隐藏的字符25l 25h从文件

时间:2016-12-21 04:13:52

标签: ruby regex gsub

包含以下行的文件

[root@test-server ~]# cat /tmp/output.log


Done

[root@test-server ~]#

但它有一些隐藏的角色,

[root@test-server ~]# cat -e /tmp/output.log
^[[?25l$
$
^[[?12l^[[?25hDone!$
$
[root@test-server ~]# 

这是这些字符的字节代码,

[root@test-server ~]# irb
irb(main):001:0> File.open("/tmp/output.log").each_byte.to_a
=> [27, 91, 63, 50, 53, 108, 10, 10, 27, 91, 63, 49, 50, 108, 27, 91, 63, 50, 53, 104, 68, 111, 110, 101, 10, 10]
irb(main):002:0>

尝试使用以下gsub方法删除此功能。

filename="/tmp/stop_output.log"
content = File.read(filename)
content.gsub!(/\e\[?(\d+)(;(\d+))?l|\e\[?(\d+)(;(\d+))?h/, '')

不确定是否遗漏了gsub的内容,

1 个答案:

答案 0 :(得分:1)

自己修好了。我发现没有逃避picker_time = new TimePicker { HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Start, Time = DateTime.Now.TimeOfDay.Add(new TimeSpan(2, 0, 0)), //WidthRequest = 100, };

?

谢谢!