У меня есть сетевой класс, который позволяет вам экспортировать журнал активности. что-то вроде этого

switch(config)# int f0/1
switch(config-line)# ip address 192.168..
*configured on 12.6.2017*

если «#» и текст перед его удалением и текстовые строки подтверждения (или другой текст ответа) так выглядит

int f0/1
ip address 192.168..

Я могу вставить его в другой (или тот же переключатель) в качестве файла конфигурации. он будет применять все аргументы по одной строке за раз и настраивать соответственно.

Я бы хотел, чтобы приложение или скрипт выполняли поиск в файлах журналов по шаблону /"списку выражений", чтобы удалить хэштеги и предыдущий текст во всех строках, сохраняя при этом текст после хештега без изменений. также было бы полезно, если бы он мог удалять строки, которые либо не имеют хештегов на первом проходе, либо содержат определенные символы, такие как "!"

идеи? кто-нибудь...

3 ответа3

1
 sed -n -e '/[!Qq]/d' -e 's/.*#//p'

напечатают части линий , которые следуют # игнорируя строки , которые не содержат # или которые ! Q или q .

-n говорит sed не печатать строки, кроме случаев, когда это явно указано.  /[!Qq]/d говорит ему удалять строки, содержащие любые символы между [ и ] (поэтому отредактируйте этот список до любых символов, которые вы хотите отклонить); удалить их из дальнейшего рассмотрения.  s/.*#//p ищет строку символов, заканчивающуюся # , удаляет ее и печатает строку.  Строки, не содержащие # , не пройдут этот шаг и не будут напечатаны.

1

Notepad++ (Windows) имеет возможность записывать замены текста в виде макросов, а также использовать регулярные выражения для этих замен (хотя вам, очевидно, не обязательно). В простейшем случае вы просто начнете запись макроса, выделите текст для замены, например, switch(config)# , замените все пустым полем замены и остановите запись. Затем макрос можно сохранить с произвольным именем для последующего воспроизведения. Приятно, что в этом случае можно записать один или несколько шагов (таким образом, несколько последовательных замен могут быть записаны индивидуально или в одном макросе по мере необходимости).

Что касается реальных сценариев, то Python , скорее всего, будет относительно простым кроссплатформенным решением (при условии, что вам стоит разработать собственный сценарий для вашей задачи). Текстовый файл может содержать элементы для замены или другие инструкции (ваш "шаблон"). В Python есть довольно надежные инструменты для работы со строками, которые, возможно, подойдут для такой работы.

0

В редакторе CudaText (бесплатно, кроссплатформенный) вы можете сделать это с помощью плагина Extract Strings. Установите этот плагин через AddonManager, затем вызовите «Плагины - Извлечение строк». В его диалоговом окне введите регулярное выражение, чтобы найти текст после #:

(?<=\#).+

Плагин покажет найденные хэштеги, вы можете поместить их в новую пустую вкладку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .