2016-12-21 2 views
0

файл, который содержит строку, как показано ниже,рубин скрытые символы 25l 25h из файла

[[email protected] ~]# cat /tmp/output.log 


Done 

[[email protected] ~]# 

Но у него есть какие-то скрытые символы,

[[email protected] ~]# cat -e /tmp/output.log 
^[[?25l$ 
$ 
^[[?12l^[[?25hDone!$ 
$ 
[[email protected] ~]# 

здесь являются байт-код этих символов,

[[email protected] ~]# 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 отсутствует,

ответ

0

Понял фиксированной себя. Я обнаружил, что не ускользнул от ?.

irb(main):021:0> filename="/tmp/output.log" 
=> "/tmp/output.log" 
irb(main):022:0> content = File.read(filename) 
=> "\e[?25l\n\n\e[?12l\e[?25hDone\n\n" 
irb(main):023:0> content.gsub!(/\e\[\?(\d+)(\d+)l|\e\[\?(\d+)(\d+)h/, '') 
=> "\n\nDone\n\n" 
irb(main):024:0> puts content 


Done 

=> nil 
irb(main):025:0> 

Спасибо!

+0

Ahh это удаление других символов, таких как 'W A R N I T G'. Нужно найти другой способ удаления этих символов. – Karthi1234

+0

Хорошо. Он отлично работает, когда я пытаюсь вывести '... WAITING' с помощью метода' .delete' и удалить эти символы. – Karthi1234

Смежные вопросы