文本查找文本组合的搜索行并进行适当替换

文本查找文本组合的搜索行并进行适当替换

我有一个网络课程,允许您导出活动日志。像这样

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

如果删除“#”和它之前的文本以及确认文本行(或其他响应文本),则看起来像

int f0/1
ip address 192.168..

我可以将它粘贴到另一个(或同一个交换机)中作为配置文件。它将一次应用一行所有参数并进行相应的配置。

我想要一个应用程序或脚本根据模板/“表达式列表”搜索日志文件,以删除所有行上的主题标签和之前的文本,同时保持主题标签后的文本不变。如果它可以删除第一次传递时没有主题标签或包含某些字符(如“!”)的行,它也很有用。

有想法吗?有人吗...

答案1

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

将打印跟在 之后的行的部分#,忽略不包含# 或 的行包含!Qq

指示不要打印行,除非明确指示这样做。-n指示它删除包含 和 之间任何字符的行( 因此请将该列表编辑为要拒绝的任何字符);即,将它们从进一步考虑中删除。搜索以 结尾的字符串,将其删除,然后打印该行。不包含 的行将失败此步骤,因此不会被打印。sed/[!Qq]/d[]s/.*#//p##

答案2

记事本++(Windows)可以将文本替换录制为宏,也可以使用常用表达进行这些替换(尽管您显然不必这样做)。在最简单的情况下,您只需开始录制宏,突出显示要替换的文本(例如switch(config)#,用空白替换字段替换全部)并停止录制。然后可以使用自定义名称保存宏以供以后重播。这样做的好处是可以录制单个或多个步骤(因此可以根据需要单独录制多个连续替换或在一个宏中录制多个连续替换)。

就实际脚本而言,Python可能是一个相对简单的跨平台解决方案(假设您值得为您的任务开发自定义脚本)。文本文件可以包含要替换的项目或其他说明(您的“模板”)。Python 有相当强大的字符串工具,可以说非常适合这类工作。

答案3

库达文本编辑器(免费,跨平台),你可以通过插件来实现提取字符串。通过 AddonManager 安装此插件,然后调用“插件 - 提取字符串”。在其对话框中,输入正则表达式以在 # 后查找文本:

(?<=\#).+

插件将显示找到的主题标签,您可以将它们放入新的空白标签中。

相关内容