2016-09-30 4 views
0

Я делаю show run> filename для сохранения некоторых конфигураций cisco. Он отлично работает, но в конфигурации сохранения есть те непечатаемые символы, которые меня раздражают.Как удалить символы^H^H в файле?

Он показывает в Vim (и на других программах, таких как Кате) следующим образом:

aaa new-model 
--More-- ^H^H^H^H^H^H^H^H^H  ^H^H^H^H^H^H^H^H^H! 
! 
aaa authentication login default local 

Вместо

aaa new-model 
! 
! 
aaa authentication login default local 

Согласно википедии (here), этот символ представляет backpsace нажатие , и такие программы, как «меньше», представляют его в надлежащей читаемой форме. Я не знаю, может ли это быть зафиксировано на происхождении или, по крайней мере, отключено в vim, любое предложение приветствуется.

+0

Возможно ли, что вы установили, что в FillChar? – TankorSmash

+0

Если вы наберете «конечную длину 0» перед тем, как сбросить конфигурацию, она не будет приостанавливаться после каждого экрана. –

+0

Я использую autocommand show running, и в этом случае инструкции являются единственной строкой, поэтому я не могу запустить длину терминала 0 – user322049

ответ

2

Вы можете просто заменить все их. Например,

:%s/<C-v><C-h>//g 

Обратите внимание, что <C-v> и <C-h> означают Ctrl-V и Ctrl-H соответственно. Это позволяет вставлять непечатаемые символы (например, <C-h>) в вашу команду подстановки.

Этот будет удалить все из них, но я не могу гарантировать, что результат будет отформатирован отлично, так как я не уверен, почему они там, в первую очередь.

+0

Он ничего не делает, к сожалению, vim говорит: «E486: шаблон не найден: user322049

+0

@ user322049' 'is * not * текст, который вы вводите.Это контроль-v, за которым следует control-h – DJMcMayhem

+0

Хорошо, я, наконец, смог проверить его, но doensn't работать, хотя в vim я вижу: s/^ H // g, я получаю "E486: шаблон не найден:" (Я просто загрузил файл здесь, если вы хотите проверить https://gist.github.com/7da907cef37078056965b4b18547a135) – user322049

0

Вот отрывок, который наивно пытаться лечить персонажа как символ стирания (cat -v используется для отображения управляющих символов в каретки обозначения, аналогичные открытия файла в VIM):

bash$ cat -v file 
aaa new-model 
--More-- ^H^H^H^H^H^H^H^H^H  ^H^H^H^H^H^H^H^H^H! 
! 
aaa authentication login default local 

bash$ sed -e $':b; s/.\b//; tb;' | cat -v 
aaa new-model 
! 
! 
aaa authentication login default local 

Это заставило бы вас ближе к фактическому выходу терминала, чем просто снимать все стирающие символы.

0

Я считаю, что для этих выходов cisco вы хотите избавиться от всей линии --More--. Вы можете сделать это следующим образом:

cat cisco-output.txt | grep -v '^ *--More.*\x08' > cisco-output-clean.txt

Результат будет выглядеть так:

aaa new-model 
! 
aaa authentication login default local 
+0

Это не работает, это странно, потому что на экране отображаются правильные символы: '$ cat original> destination # отображает символ обратного пробега $ cat original | grep -v '^ * - Больше. * \ x0> место назначения # сохраняет пробелы $ cat original #show только правильные символы в экране ' – user322049