千家信息网

我的朗科运维第六课(1)

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,文本处理三剑客grep系:grep、egrep、fgrep,文本搜索工具,居于"PATTERN"对于给定的文本进行模糊搜索。sed:tream EDitor,流编辑器,行编辑器,文本编辑工具;awk:
千家信息网最后更新 2024年11月14日我的朗科运维第六课(1)

文本处理三剑客

grep系:grep、egrep、fgrep,文本搜索工具,居于"PATTERN"对于给定的文本进行模糊搜索。

sed:tream EDitor,流编辑器,行编辑器,文本编辑工具;

awk:gawk--GNU awd,文本格式化工具,文本报告生成器,文本处理的编辑语言;

grep系:grep、egrep、fgrep

grep:Global search REgular expression and Print out the line.

利用增则表达式进行全局搜索并将匹配的行显示出来;

格式:grep [OPTIONS] PATTERN [FILE...]

PATTERN:过滤条件,是由正则表达式元字符以及没有特殊含义的文本字符组成。

正则表达式的元字符:会被正则表达式引擎解释为特殊含义;pcre--perl语言的正则表达式引擎; 其中正则表达式分两中:

一、基本的正则表达式:BRE;

二、扩展的正则表达式:ERE;

grep默认仅支持基本正则表达式;

egrep默认仅支持扩展正则表达式;

fgrep默认不开启正则表达式;

文本字符:只具备字符表面含义的那些字符;

常用选项:

-i,--ignore-case:忽略文本字符的大小写;

-v,--invert-match:方向匹配;最终显示的结果是PATTERN不能匹配的行;

-c,--count:计数,统计匹配PATTERN的所有行数;

-o,--only-吗thing:关闭贪婪模式,仅显示PATTERN能够匹配的内容;

-q,--quiet,--silent:安静模式,不输出任何匹配结果;

--color[=WHEN],--colour[=WHEN]:将匹配PATTERN的内容以特殊颜色高亮显示;

-E,--extended-regexp:扩展的正则表达式,grep -E相当于egrep;

-F,--fixed-strings,--fixed-regexp:grep -F相当于fgrep

-G,--basic-regexp:基本的正则表达式,egrep -G相当于grep

-P,--prel-regecp:使用PCRE(Perl Regular Expression)引擎;

-A NUM,--after-context=NUM:在显示匹配PATTERN的行的同时显示起后面的NUM行;

-B NUM, --before-context=NUM:在显示匹配PATTERN的行的同时显示起前面的NUM行;

-C NUM, -NUM, --context=NUM:在显示匹配PATTERN的行的同时显示起前后各NUM行;

PATTERN:

正则表达式元字符:

基本的正则表达式元字符:

GLOBBING-----简化版的正则表达式:[] ? *

字符匹配:

.:匹配任意单个字符

[]:匹配指定范围内的任意单个字符;

[^]:匹配指定范围以外的任意单个字符;

下列所有的字符集都可以放置于[]之中用于匹配单个字符:

[:lower:]、[:upper:]、[:alpha:]、[:digit:]、[:space:]、[:alnum:]、[:punct:]、[:blank:]

[:xdigit:]:所有的十六进制数字;

a-z:所有的小写字母

A-Z:所有的大写字母

0-9:标识所有的十进制数字

次数匹配:该类字符之前的那个字符可以出现的次数;

*:其前面的字符可以出现任意次(0次,1次或多次);

\?:其前面的字符可有可无(0次或1次);

\+:其前面的字符至少出现一次(1次或多次);

\{m\}:其前面的字符必须出现m次;

\{m,n\}:其前面的字符至少出现m次,至多出现n次;(m

\{,n\}:其前面的字符至少出现0次,至多出现n次;

\{m,\}:其前面的字符至少出现m次,×××;

在正则表达式中,表示任意长度任意字符的方式:.*

位置锚定字符:

行锚定:

行首锚定:^

行尾锚定:$

字锚定:

字首锚定:\<或\b

字尾锚定:\>或\b

注意: \b:旧版本中的锚定方法,建议不使用:

对于正则表达式引擎来说,字是由非特殊字符组成的连续字符串;


0