文本内容查询

Posted tomyliu1980

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文本内容查询相关的知识,希望对你有一定的参考价值。

命令:grep,egrep,fgrep

在实际工作中,我们会对大量数据进行分析,时间有限,这时,我们就要使用文本查询功能,在大文本中查找是否有指定条件的文本内容。这时就需要用到文本查询工具。Linux常用的文本查询工具有:grep,egrep,fgrep。

它们的功能相近,而且可以相互替代。 文本查询就需要了解正则表达式。熟练掌握正则表达式,你就可以快速找到你需要查询的内容。正则表达式分为两种:

一、基本正则表达式

1、字符匹配

序号

符号

释义

1

.

单个任意字符

2

[]

单个指定范围内的任意字符,指定范围放在中括号中间。

a-c:小写字母a到c

A-C:大写字母A到C

0-9:数字0到9

[:lower:]:任意小写字母

[:upper:]:任意大写字母

[:alpha:]:任意字母,包括大写,小写

[:digit:]:任意数字,0-9

[:alnum:]:任意字母或数字

[:punct:]:任意非字母符号

[:xdigit:]:任意十六进制数字,包含0-9,a-f,A-F

也可以把范围直接相连,表示两个范围内的值都可以取,比如:a-c[:upper:]就表示可以取a到c和大写字母中的任意一个字符。

3

[^]

在指定范围前加^,表示指定范围外的任意字符

2、匹配次数,使用匹配次数符号,表示其前的字符会重复的次数

序号

符号

释义

1

*

任意次数,包括0次

2

\\?

0次或1次

3

\\+

至少1次

4

\\{m\\}

m次

5

\\{m,n\\}

最少m次,最多n次

6

\\{m,\\}

最少m次

7

\\{0,n\\}

最多n次

3、位置锚定,表示所在位置

序号

符号

释义

1

^

行首,在行的最开始

2

$

行尾,在行的最后面

3

\\<

词首,在单词的最开始,表示在左边没有字符,或着是非字母字符,但注意,如果跟在.后会失效

4

\\>

词尾,在单词的结束位置,表示在其右侧没有字符,或者是非字母字符,但注意,如果后面跟了.则会失效

5

\\b

词首或词尾,如果在字母的左侧则表示词首,右侧则表示词尾

4、分组及引用

分组,把一段正则表达式放在一起,当一个对象使用,分组方法就是用\\(和\\)把正则表达式扩起来。

引用,就是在分组后用\\数字表示和对应的分组正则表达式匹配得到的内容一致,\\1表示第一组,\\2表示第2组,依次类推。

二、扩充正则表达式

1、字符匹配

序号

符号

释义

1

.

单个任意字符

2

[]

单个指定范围内的任意字符,指定范围放在中括号中间。

a-c:小写字母a到c

A-C:大写字母A到C

0-9:数字0到9

[:lower:]:任意小写字母

[:upper:]:任意大写字母

[:alpha:]:任意字母,包括大写,小写

[:digit:]:任意数字,0-9

[:alnum:]:任意字母或数字

[:punct:]:任意非字母符号

[:xdigit:]:任意十六进制数字,包含0-9,a-f,A-F

也可以把范围直接相连,表示两个范围内的值都可以取,比如:a-c[:upper:]就表示可以取a到c和大写字母中的任意一个字符。

3

[^]

在指定范围前加^,表示指定范围外的任意字符

2、匹配次数

序号

符号

释义

1

*

任意次数,包括0次

2

0次或1次

3

+

至少1次

4

{m}

m次

5

{m,n}

最少m次,最多n次

6

{m,}

最少m次

7

{0,n}

最多n次

3、位置锚定

序号

符号

释义

1

^

行首,在行的最开始

2

$

行尾,在行的最后面

3

\\<

词首,在单词的最开始,表示在左边没有字符,或着是非字母字符,但注意,如果跟在.后会失效

4

\\>

词尾,在单词的结束位置,表示在其右侧没有字符,或者是非字母字符,但注意,如果后面跟了.则会失效

4、分组及引用

分组:()

引用:\\数字

查询命令格式:grep|egrep|fgrep [参数] "表达式" [文件]

其中grep默认支持基本正则表达式,egrep:扩充正则表达式,fgrep:不支持正则表达式,但可以通过参数来修改。

-E:扩充正则表达式

-G:基本正则表达式

-F:不支持正则表达式

还有以下常用参数

-i:忽略大小写

-o:仅返回匹配的部分

-v:反向匹配,返回不能匹配的行

-q:静默模式,不返回内容,但运行结果会有值,有匹配文本就返回0,否则返回1

-A[ ]m:中间可以有空格,也可以没有,返回匹配的行以及匹配行后m行

-B[ ]m:返回匹配行前m行以及匹配的行

-C[ ]m: 返回匹配行前m行、匹配行以及匹配后m行

--color=VALUE:改变返回内容的配色方案,取值可以是:never:不高亮显示、always:匹配内容高亮,再次查询时依然高亮、auto:匹配内容高亮,再次查询时不高亮显示

以上是关于文本内容查询的主要内容,如果未能解决你的问题,请参考以下文章

如何访问 Gatsby 中“file”或“allFiles”GraphQL 查询返回的文件的文本内容?

JSP页面中在文本框中输入内容,动态从数据库模糊查询显示到下拉框中。

JSP页面中在文本框中输入内容,动态从数据库模糊查询显示到下拉框中!你这个可以给发一下吗?

jQuery如何根据输入到文本框的关键字查询页面内容、然后把相关的内容全部显示到list中、

Access 连续表单上的动态文本框内容

005.Oracle数据库 , 查询多字段连接合并,并添加文本内容