CN111597323B - 关键字段过滤方法、装置、存储介质及电子设备 - Google Patents

关键字段过滤方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN111597323B
CN111597323B CN202010299904.4A CN202010299904A CN111597323B CN 111597323 B CN111597323 B CN 111597323B CN 202010299904 A CN202010299904 A CN 202010299904A CN 111597323 B CN111597323 B CN 111597323B
Authority
CN
China
Prior art keywords
function
key field
shell
name
parsing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010299904.4A
Other languages
English (en)
Other versions
CN111597323A (zh
Inventor
明归来
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Realme Chongqing Mobile Communications Co Ltd
Original Assignee
Realme Chongqing Mobile Communications Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Realme Chongqing Mobile Communications Co Ltd filed Critical Realme Chongqing Mobile Communications Co Ltd
Priority to CN202010299904.4A priority Critical patent/CN111597323B/zh
Publication of CN111597323A publication Critical patent/CN111597323A/zh
Application granted granted Critical
Publication of CN111597323B publication Critical patent/CN111597323B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种关键字段过滤方法、装置、存储介质及电子设备,其中,方法包括:获取指定解析功能的名称,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段;生成所述关键字段对应的shell函数;在操作系统命令处理工具的运行环境中运行所述shell函数。采用本申请实施例,避免了当过滤的关键字段较多时,书写多个以“|”分隔的、繁杂的、容易出错的命令行选项参数的问题,避免用户去为每一个解析功能编写对应的shell函数而修改解析工具主程序。

Description

关键字段过滤方法、装置、存储介质及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种关键字段过滤方法、装置、存储介质及电子设备。
背景技术
日志解析工具的主要功能,是从文本日志中过滤出包含指定字段的行。
为实现此功能,通常会将期望被过滤出的多个关键字段以“|”分隔的形式组合起来,作为grep命令的-E选项的参数,组成一条完整的命令行语句,然后在linux shell终端上执行这条命令行语句。当过滤器(期望被过滤出来的某个文本字段)数量太多时,会导致grep命令语句太长,在linux shell终端上书写、或者拷贝容易出错。
发明内容
本申请实施例提供了一种关键字段过滤方法、装置、存储介质及电子设备,避免了当过滤的关键字段较多时,书写多个以“|”分隔的、繁杂的、容易出错的命令行选项参数的问题,避免用户去为每一个解析功能编写对应的shell函数而修改解析工具主程序。所述技术方案如下:
第一方面,本申请实施例提供了一种关键字段过滤方法,所述方法包括:
获取指定解析功能的名称,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段;
生成所述关键字段对应的shell函数;
在操作系统命令处理工具的运行环境中运行所述shell函数。
第二方面,本申请实施例提供了一种关键字段过滤装置,所述装置包括:
字段查找模块,用于获取指定解析功能的名称,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段;
函数生成模块,用于生成所述关键字段对应的shell函数;
函数运行模块,用于在操作系统命令处理工具的运行环境中运行所述shell函数。
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,通过获取指定解析功能的名称,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段,生成所述关键字段对应的shell函数,在操作系统命令处理工具的运行环境中运行所述shell函数。由于预先将包含关键字段的解析功能保存在过滤器文件中,只需要在过滤关键字段时,指定解析功能的名称,即可简单方便的找到待过滤的关键字段,并通过生成shell函数并运行shell函数的方式实现过滤,从而避免了当过滤的关键字段较多时,书写多个以“|”分隔的、繁杂的、容易出错的命令行选项参数的问题,避免用户去为每一个解析功能编写对应的shell函数而修改解析工具主程序。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种关键字段过滤方法的流程示意图;
图2是本申请实施例提供的另一种关键字段过滤方法的流程示意图;
图3是本申请实施例提供的一种关键字段过滤装置的结构示意图;
图4是本申请实施例提供的另一种关键字段过滤装置的结构示意图;
图5是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
日志解析工具的主要功能,是从文本日志中过滤出包含指定字段的行。为实现此功能,通常会将期望被过滤出的多个字段(Filter)以“|”分隔的形式组合起来,作为grep命令的-E选项的参数。目前主要使用如下两种方式去实现过滤:
其一,直接将grep参数(GP)放在grep-E命令后边,组成一条完整的命令行语句,然后在linux shell终端上执行这条命令行语句。
当期望被过滤出来的文本字段(过滤器)数量太多时,会导致grep命令语句太长,在linux shell终端上书写、或者拷贝太长的字符串,繁琐,容易出错,不利于解析工具的维护和推广。此外,单纯的命令语句,无法实现复杂的解析需求,用户为了实现某个解析功能,可能需要多次修改过滤器参数,在linux shell终端上修改文本,很低效。
其二:编写shell脚本,将grep命令和grep参数(GP)组成的命令语句封装到shell函数中,然后在shell脚本入口处为此shell函数定义命令行选项(简称为ParseFuncName)。运行shell脚本时指定ParseFuncName,从而实现指定的过滤。
当需要修改过滤器时,就必须修改shell脚本、以及对应的shell函数,然后重新发布shell脚本,不利于解析工具的版本维护。为了推广日志解析工具,开发者希望将shell主程序加密,仅发布二进制可执行文件而不提供源码,但是用户便无法更改主程序,进而无法修改过滤器,不能满足日志解析的需求。
下面结合具体的实施例对本申请进行详细说明。
在一个实施例中,如图1所示,特提出了一种关键字段过滤方法,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的关键字段过滤装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。所述关键字段过滤装置可以为电子设备,包括但不限于:个人电脑、手持设备、平板电脑、可穿戴设备、车载设备、智能手机、计算设备或连接到无线调制解调器的其它处理设备等。在所述关键字段过滤装置上安装有日志解析工具。
具体的,该关键字段过滤方法包括:
S101,获取指定解析功能的名称,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段;
可以理解的是,过滤器文件FilterFile为一个集合,可以为预先设定的。在过滤器文件中定义至少一个解析功能ParseFunc。每个ParseFunc由解析功能的名称ParseFuncName和至少一个关键字段Filter组成。所述关键字段也称为过滤器,如FilterA、FilterB、FillterN。
也就是说,ParseFuncName可以唯一标识ParseFunc,每个ParseFunc、ParseFuncName以及ParseFunc中包含的Filter是对应的。所述Filter可以为文本日志中的字段,通过确定关键字段可以过滤出文本日志中包含这些关键字段的行。
其中,ParseFunc的表示形式如下:
ParseFuncName{
FilterA
FilterB
FillterN//注释,描述此过滤器具体的含义
}
每个ParseFunc中包括至少一个过滤器,且每个ParseFunc中的过滤器不完全相同。例如,ParseFunc1中的过滤器包括FilterA、FilterB和FilterC,ParseFunc1中的过滤器包括FilterB、FilterC和FilterD,ParseFunc3中的过滤器包括FilterE、FilterF和FilterG。
具体实现中,当需要对某些字段过滤时,确定该字段所属的解析功能的解析功能的名称。可在LinuxShell终端上书写LPT ParseFuncName语句,然后解析工具依次遍历过滤器文件中的各解析功能的名称以找到该指定解析功能的名称对应的解析功能,读取该解析功能中的关键字段,实现解析功能。所述Linux是一个多用户、多任务、支持多线程和多CPU的操作系统。
解析工具(Log Parse Tool,LPT),是用SQL语言访问所要分析的文本文件以及操作系统的日志、注册表、文件系统和活动目录,可以从文本日志中过滤出包含指定的关键字的行的可执行文件。
可选的,当读取到的关键字段与用户想要过滤的关键字段不匹配时,可以理解为用户指定的解析功能的名称错误,可重新指定。
S102,生成所述关键字段对应的shell函数;
LPT使用awk\sed\grep等bash命令行工具,对ParseFunc对应的文本片段执行翻译,生成所述关键字段对应的shell函数(DSF)。
其中,翻译的过程就是将多个Filter用“|”分隔组合,作为grep-E参数,从而生成新的grep语句,DSF内部会自动包含该grep语句。
grep-E可以传递多个内容,使用“|”来分割多个关键字段,以此实现OR操作。例如,指定解析功能的名称对应的解析功能的过滤器包括FilterA、FilterB和FilterC,那么生成的shell函数包括的grep语句为:grep-E'FilterA|FilterB|FilterC'filenam。
shell是一种程序设计语言。作为命令语言,它交互式解释用户输入的命令或者自动地解释预先设定好的一连串的命令,然后传送给操作系统(内核)执行。
S103,在操作系统命令处理工具的运行环境中运行所述shell函数。
LPT使用linuxexport命令将DSF安装到bash的当前运行环境中,然后在该运行环境中执行DSF,从而实现关键字段的过滤功能。bash(borne again shell)是shell的一种,Linux上默认采用的是bash,是Linux的命令处理工具。
当用户在命令行中敲入bash命令时,相当于进入bash环境,如果本身就是bash环境,那么就是进入一个子bash环境(相当于开了一个子进程)。
可选的,还可以将DSF安装到windows运行环境中,并运行所述shell函数。
在本申请实施例中,通过获取指定解析功能的名称,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段,生成所述关键字段对应的shell函数,在操作系统命令处理工具的运行环境中运行所述shell函数。由于预先将包含关键字段的解析功能保存在过滤器文件中,只需要在需要过滤关键字段时,指定解析功能的名称,即可简单方便的找到待过滤的关键字段,并通过生成shell函数的方式自动生成grep参数语句,从而避免了当过滤的关键字段较多时,书写多个以“|”分隔的、繁杂的、容易出错的命令行选项参数的问题,避免用户去为每一个解析功能编写对应的shell函数而修改解析工具主程序。
请参见图2,图2是本申请提出的一种关键字段过滤方法的另一种实施例的流程示意图。以Linux操作系统为例,具体的:
S201,定义至少一个解析功能,每个所述解析功能包括解析功能的名称以及至少一个关键字段,所述至少一个关键字段按行排列;
每个解析功能ParseFunc由解析功能的名称ParseFuncName和至少一个关键字段Filter组成。所述关键字段也称为过滤器,如FilterA、FilterB、FillterN。
其中,ParseFunc的表示形式如下:
ParseFuncName{
FilterA
FilterB
FillterN//注释,描述此过滤器具体的含义
}
ParseFuncName可以唯一标识ParseFunc,每个ParseFunc、ParseFuncName以及ParseFunc中包含的Filter是对应的。所述Filter可以为文本日志中的字段,通过确定关键字段可以过滤出文本日志中包含这些关键字段的行。
关键字段Filter按行排列,这样,即使关键字段的数量很多,也不会影响每行字段的长度。
按照上述方式可以定义至少一个ParseFunc,如ParseFunc1、ParseFunc2、…ParseFuncn。
S202,对每个所述关键字段添加注释;
可对每个过滤器添加注释,所述注释可以为对应的滤波器所代表的含义。添加注释便于组织排列,从而可以从逻辑功能描述上一目了然地将过滤器(Filter)区分开来。
在对滤波器添加注释后,通过在运行环境中运行,输出的结果中也包括相应的注释。
S203,将所述至少一个解析功能写入过滤器文件中;
将上述定义的至少一个ParseFunc写入过滤器文件FilterFile中进行保存。
当然,也可以定期对FilterFile中的ParseFunc进行更新,如增加新的ParseFunc、删除部分ParseFunc、修改ParseFunc。
S204,获取指定解析功能的名称,采用包含所述指定解析功能的名称的命令语句,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段;
在当前需要过滤某些关键字段时,只需要查找到这些关键字段所属的ParseFunc,而ParseFunc与ParseFuncName唯一对应,因此,只需要指定ParseFuncName即可。所指定的ParseFuncName可以包括一个或多个,当为多个时,可以同时对多组关键字段进行过滤。
具体的,在LinuxShell终端上书写LPT ParseFuncName语句,LPT依次遍历过滤器文件中的各ParseFuncName以找到该指定ParseFuncName对应的ParseFunc,读取该ParseFunc中的Filter,实现解析功能。当指定多个ParseFuncName时,可以书写多个LPTParseFuncName语句,并按照上述方式依次查找。
S205,使用操作系统命令行工具,对所述关键字段执行翻译,生成shell函数;
bash命令行是计算机操作的一种方式。命令行有很多,如Windows的CMD,MacBook的Terminal ITerm2等。
对于linux系统,常见的bash命令行工具包括grep、sed、awk等。
grep:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep是一种查找过滤工具,正则表达式在grep中用来查找符合模式的字符串。
grep有三种变形:
1.grep:标准grep命令主要讨论此格式。
2.egrep:扩展grep,支持基本及扩展的正则表达式。
3.fgrep:快速grep,允许查找字符串而不是一个模式。
格式为grep[options]
sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
格式:pattern/action其中pattern是正则表达式,action是编辑操作。sed程序一行一行读出待处理文件,如果某一行与pattern匹配,则执行相应的action,如果一条命令没有pattern而只有action,这个action将作用于待处理文件的每一行。
awk:是一种用于处理文本的编程语言工具。AWK实用工具的语言在很多方面类似于shell编程语言,尽管AWK具有完全属于其本身的语法。在最初创造AWK时,其目的是用于文本处理,并且这种语言的基础是,只要在输入数据中有模式匹配,就执行一系列指令。该实用工具扫描文件中的每一行,查找与命令行中所给定内容相匹配的模式。如果发现匹配内容,则进行下一个编程步骤。如果找不到匹配内容,则继续处理下一行。,awk比sed强的地方在于不仅能以行为单位还能以列为单位处理文件。awk缺省的行分隔符是换行,缺省的列分隔符是连续的空格和Tab,但是行分隔符和列分隔符都可以自定义。
awk命令行的基本形式为:
awk option'script'file1 file2...
awk option-f scriptfile file1 file2...
和sed一样,awk处理的文件既可以由标准输入重定向得到,也可以当命令行参数传入,编辑命令可以直接当命令行参数传入,也可以用-f参数指定一个脚本文件,编辑命令的格式为:
/pattern/{actions}
condition{actions}
对于Linux系统,LPT使用awk\sed\grep等bash命令行工具对所查找到的Filter进行翻译,从而生成该指定ParseFuncName对应的shell函数。其中,翻译的过程就是将多个Filter用“|”分隔组合,作为grep-E参数,从而生成新的grep语句,DSF内部会自动包含该grep语句。
grep-E可以传递多个内容,使用“|”来分割多个关键字段,以此实现OR操作。例如,指定ParseFuncName对应的ParseFunc的过滤器包括FilterA、FilterB和FilterC,那么生成的shell函数包括的grep语句为:grep-E'FilterA|FilterB|FilterC'filenam。
当然,ParseFuncName包括多个时,所生成的shell函数也为多个。
S206,使用操作系统的设置环境命令将所述shell函数安装到操作系统命令处理工具的运行环境中,运行所述shell函数。
所述设置环境命令为Linux export命令,用于设置或显示环境变量。在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。
在shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。export命令将使系统在创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。
LPT使用linuxexport命令将shell函数安装到bash的当前运行环境中,然后在该运行环境中运行shell函数,从而实现关键字段的过滤功能。bash(borne again shell)是shell的一种,Linux上默认采用的是bash,是Linux的命令处理工具。
在本申请实施例中,用户不必在命令行中指定复杂的grep参数,只需将其按照行的形式在过滤器文件中列出。解析工具会自动翻译过滤文件中的grep参数,动态生成shell函数,自动加载到bash运行环境并执行,从而完成过滤功能。由于预先将包含关键字段的解析功能保存在过滤器文件中,只需要在需要过滤关键字段时,指定解析功能的名称,即可简单方便的找到待过滤的关键字段,并通过生成shell函数的方式自动生成grep参数语句,从而避免了当过滤的关键字段较多时,书写多个以“|”分隔的、繁杂的、容易出错的命令行选项参数的问题,避免用户去为每一个解析功能编写对应的shell函数而修改解析工具主程序。本方案中shell版本的日志解析工具,可做到闭源,统一版本,便于更新和维护。用户可自定义过滤器文件,并且可共享和发布,为更多的用户所用。LPT支持多个过滤器文件,用户可按照逻辑功能模块,去对过滤器和解析功能做更好的维护。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图3,其示出了本申请一个示例性实施例提供的关键字段过滤装置的结构示意图。该关键字段过滤装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括字段查找模块10、函数生成模块20和函数运行模块30。
字段查找模块10,用于获取指定解析功能的名称,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段;
函数生成模块20,用于生成所述关键字段对应的shell函数;
函数运行模块30,用于在操作系统命令处理工具的运行环境中运行所述shell函数。
可选的,如图4所示,所述装置还包括:
解析功能定义模块40,用于定义至少一个解析功能,每个所述解析功能包括解析功能的名称以及至少一个关键字段;
解析功能写入模块50,用于将所述至少一个解析功能写入过滤器文件中。
可选的,所述至少一个关键字段按行排列。
可选的,如图4所示,所述装置还包括注释添加模块60,用于对每个所述关键字段添加注释。
可选的,所述字段查找模块10,具体用于:
采用包含所述指定解析功能的名称的命令语句,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段。
可选的,所述函数生成模块20,具体用于:使用操作系统命令行工具,对所述关键字段执行翻译,生成shell函数。
可选的,所述函数运行模块30,具体用于:使用操作系统的设置环境命令将所述shell函数安装到操作系统命令处理工具的运行环境中,运行所述shell函数。
需要说明的是,上述实施例提供的关键字段过滤装置在执行关键字段过滤方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的关键字段过滤装置与关键字段过滤方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,用户不必在命令行中指定复杂的grep参数,只需将其按照行的形式在过滤器文件中列出。解析工具会自动翻译过滤文件中的grep参数,动态生成shell函数,自动加载到bash运行环境并执行,从而完成过滤功能。由于预先将包含关键字段的解析功能保存在过滤器文件中,只需要在需要过滤关键字段时,指定解析功能的名称,即可简单方便的找到待过滤的关键字段,并通过生成shell函数的方式自动生成grep参数语句,从而避免了当过滤的关键字段较多时,书写多个以“|”分隔的、繁杂的、容易出错的命令行选项参数的问题,避免用户去为每一个解析功能编写对应的shell函数而修改解析工具主程序。本方案中shell版本的日志解析工具,可做到闭源,统一版本,便于更新和维护。用户可自定义过滤器文件,并且可共享和发布,为更多的用户所用。LPT支持多个过滤器文件,用户可按照逻辑功能模块,去对过滤器和解析功能做更好的维护。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图2所示实施例的所述指向方位确定方法,具体执行过程可以参见图1-图2所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图1-图2所示实施例的所述多频热点开启方法,具体执行过程可以参见图1-图2所示实施例的具体说明,在此不进行赘述。
请参见图5,为本申请实施例提供了一种电子设备的结构示意图。如图5所示,所述电子设备1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个服务器1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行服务器1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图5所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及关键字段过滤应用程序。
在图5所示的电子设备1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的关键字段过滤应用程序,并具体执行以下操作:
获取指定解析功能的名称,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段;
生成所述关键字段对应的shell函数;
在操作系统命令处理工具的运行环境中运行所述shell函数。
在一个实施例中,所述处理器1001在执行获取指定解析功能的名称之前,还执行以下操作:
定义至少一个解析功能,每个所述解析功能包括解析功能的名称以及至少一个关键字段;
将所述至少一个解析功能写入过滤器文件中。
在一个实施例中,所述至少一个关键字段按行排列。
在一个实施例中,所述处理器1001还执行以下步骤:
对每个所述关键字段添加注释。
在一个实施例中,所述处理器1001在执行在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段时,具体执行以下操作:
采用包含所述指定解析功能的名称的命令语句,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段。
在一个实施例中,所述处理器1001在执行生成所述关键字段对应的shell函数时,具体执行以下操作:
使用操作系统命令行工具,对所述关键字段执行翻译,生成shell函数。
在一个实施例中,所述处理器1001在执行在操作系统命令处理工具的运行环境中运行所述shell函数时,具体执行以下步骤:
使用操作系统的设置环境命令将所述shell函数安装到操作系统命令处理工具的运行环境中,运行所述shell函数。
在本申请实施例中,用户不必在命令行中指定复杂的grep参数,只需将其按照行的形式在过滤器文件中列出。解析工具会自动翻译过滤文件中的grep参数,动态生成shell函数,自动加载到bash运行环境并执行,从而完成过滤功能。由于预先将包含关键字段的解析功能保存在过滤器文件中,只需要在需要过滤关键字段时,指定解析功能的名称,即可简单方便的找到待过滤的关键字段,并通过生成shell函数的方式自动生成grep参数语句,从而避免了当过滤的关键字段较多时,书写多个以“|”分隔的、繁杂的、容易出错的命令行选项参数的问题,避免用户去为每一个解析功能编写对应的shell函数而修改解析工具主程序。本方案中shell版本的日志解析工具,可做到闭源,统一版本,便于更新和维护。用户可自定义过滤器文件,并且可共享和发布,为更多的用户所用。LPT支持多个过滤器文件,用户可按照逻辑功能模块,去对过滤器和解析功能做更好的维护。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (10)

1.一种关键字段过滤方法,其特征在于,所述方法包括:
获取指定解析功能的名称,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段;其中,所述过滤器文件中定义有至少一个解析功能,所述解析功能包括:所述解析功能的名称和至少一个关键字段;
生成所述关键字段对应的shell函数;
在操作系统命令处理工具的运行环境中运行所述shell函数。
2.根据权利要求1所述的方法,其特征在于,所述获取指定解析功能的名称之前,还包括:
定义至少一个解析功能,每个所述解析功能包括解析功能的名称以及至少一个关键字段;
将所述至少一个解析功能写入过滤器文件中。
3.根据权利要求2所述的方法,其特征在于,所述至少一个关键字段按行排列。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
对每个所述关键字段添加注释。
5.根据权利要求1所述的方法,其特征在于,所述在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段,包括:
采用包含所述指定解析功能的名称的命令语句,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段。
6.根据权利要求1所述的方法,其特征在于,所述生成所述关键字段对应的shell函数,包括:
使用操作系统命令行工具,对所述关键字段执行翻译,生成shell函数。
7.根据权利要求1所述的方法,其特征在于,所述在操作系统命令处理工具的运行环境中运行所述shell函数,包括:
使用操作系统的设置环境命令将所述shell函数安装到操作系统命令处理工具的运行环境中,运行所述shell函数。
8.一种关键字段过滤装置,其特征在于,所述装置包括:
字段查找模块,用于获取指定解析功能的名称,在过滤器文件中查找所述指定解析功能的名称对应的解析功能的关键字段;其中,所述过滤器文件中定义有至少一个解析功能,所述解析功能包括:所述解析功能的名称和至少一个关键字段;
函数生成模块,用于生成所述关键字段对应的shell函数;
函数运行模块,用于在操作系统命令处理工具的运行环境中运行所述shell函数。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~7任意一项的方法步骤。
10.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~7任意一项的方法步骤。
CN202010299904.4A 2020-04-16 2020-04-16 关键字段过滤方法、装置、存储介质及电子设备 Active CN111597323B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010299904.4A CN111597323B (zh) 2020-04-16 2020-04-16 关键字段过滤方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010299904.4A CN111597323B (zh) 2020-04-16 2020-04-16 关键字段过滤方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN111597323A CN111597323A (zh) 2020-08-28
CN111597323B true CN111597323B (zh) 2023-06-02

Family

ID=72192016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010299904.4A Active CN111597323B (zh) 2020-04-16 2020-04-16 关键字段过滤方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111597323B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006036290A1 (en) * 2004-09-24 2006-04-06 Microsoft Corporation File system shell
CN104426945A (zh) * 2013-08-27 2015-03-18 腾讯科技(深圳)有限公司 一种获取应用性能数据的方法、设备和系统
CN104536987A (zh) * 2014-12-08 2015-04-22 联动优势电子商务有限公司 一种查询数据的方法及装置
CN107632926A (zh) * 2017-09-18 2018-01-26 郑州云海信息技术有限公司 业务数量统计方法、装置、设备及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189501B2 (en) * 2001-08-31 2015-11-17 Margaret Runchey Semantic model of everything recorded with UR-URL combination identity-identifier-addressing-indexing method, means, and apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006036290A1 (en) * 2004-09-24 2006-04-06 Microsoft Corporation File system shell
CN104426945A (zh) * 2013-08-27 2015-03-18 腾讯科技(深圳)有限公司 一种获取应用性能数据的方法、设备和系统
CN104536987A (zh) * 2014-12-08 2015-04-22 联动优势电子商务有限公司 一种查询数据的方法及装置
CN107632926A (zh) * 2017-09-18 2018-01-26 郑州云海信息技术有限公司 业务数量统计方法、装置、设备及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
J. Stelovsky.《Can rote memorization be fun? A game shell for concept matching with Java and XML》.《IEEE》.2001,全文. *
金涛 等.《基于SQL注入Web渗透技术取证方法的研究》.《网络空间安全》.2017,全文. *

Also Published As

Publication number Publication date
CN111597323A (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
EP3605324B1 (en) Application development method and tool, and storage medium thereof
CN111045655B (zh) 一种页面渲染的方法、装置、渲染服务器和存储介质
Teetor R cookbook: Proven recipes for data analysis, statistics, and graphics
US9400775B2 (en) Document data entry suggestions
JP7324831B2 (ja) ディープラーニングフレームワークにおける演算子の展開方法、展開装置及び電子機器
CN107943691B (zh) 一种自动产生智能合约的功能测试页面的方法及装置
Long et al. R cookbook: proven recipes for data analysis, statistics, and graphics
Vaingast Beginning Python visualization: crafting visual transformation scripts
Rossant Learning IPython for interactive computing and data visualization
CN114036443A (zh) 页面生成方法及装置
CN114115923A (zh) 一种操作系统搭建方法及系统
CN114706616A (zh) 小程序构建方法和装置
US20100218200A1 (en) Method for programmatic editing of text files
Rossant Learning IPython for interactive computing and data visualization
CN111597323B (zh) 关键字段过滤方法、装置、存储介质及电子设备
CN111142871A (zh) 一种前端页面开发系统、方法、设备、介质
Schroeder et al. The Book of Dash: Build Dashboards with Python and Plotly
CN109408057A (zh) 自动生成代码的方法、装置、介质和计算设备
Verma et al. Statistical Visualization of Big Data Through Hadoop Streaming in RStudio
McGrath R for Data Analysis in easy steps: Covers R Programming essentials
CN113391806A (zh) 一种将颜色代码进行转换的方法、装置、设备和可读介质
JP4925514B2 (ja) 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体
CN112988139A (zh) 事件处理文件的开发方法与装置
Milovanovic et al. Python Data Visualization Cookbook
Kalkhanda Learning AWK Programming: A fast, and simple cutting-edge utility for text-processing on the Unix-like environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant