04_03_管理及IO重定向04_04_grep及正则表达式


管理及IO重定向

输入设备/输出设备,程序,控制器,运算器,存储器;

地址总线:内存寻址;

数据总线:传输数据

控制总线:控制指令

寄存器:cpu暂时存储器

系统设定:

1、默认输出设备:标准输出STDOUT(显示器)

2、默认输入设备:标准输入STDIN(键盘)

3、标准错误输出STDERR(显示器)

I/O重定向:

>:标准输出重定向,覆盖输出,原有内容会被覆盖;

>>:追加输出,保留原有文件内容;

>|:覆盖输出(强制输出,set命令一样无效);

&|:重定向标准输出或错误输出至同一文件;

2>:错误输出重定向,覆盖输出;

2>>:追加错误输出;

<:输入重定向;

<<:生成文档,文档终止词 ,使用 << 命令从键盘把多行重导向给STDIN,直到 终止词 位置的所有文本都发给STDIN,例如:

04_03_管理及IO重定向04_04_grep及正则表达式_第1张图片

set:命令,设定功能,能设定bash的功能开关:

        -c:如果文件已存在,禁止使用覆盖重定向;

        +c:关闭功能,允许覆盖;

管道:

前一个命令的输出,作为后一个命令的输入,用竖杠 | 表示

tee:命令,读取标准输入到标准输出和文件中,可与管道命令配合使用;

         -a:在原有基础上追加输出


grep及正则表达式

        在linux中我们会有文本查找以及文本检索的需要,grep命令就是用于文本检索的,可以根据模式去搜索文本,并将符合模式的文本行显示出来。

模式:pattern,文本字符和正则表达式的元字符(元字符是指那些在正则表达式中具有特殊意义的专用字符)组合而成的匹配条件。

grep    选项    模式    文件

        -i            忽略大小写

        --color    高亮区分

        -v            显示无匹配信息

        -o           只显示被模式匹配到的字符串

正则表达式(默认贪婪模式):

    :表示匹配任意单个字符;

*     :匹配其前面的字符任意次,例如匹配a字母任意次:

04_03_管理及IO重定向04_04_grep及正则表达式_第2张图片

.*    :匹配任意长度任意字符;

?   :匹配其前面的字符一次或零次,一般在使用?的时候需要在其前面使用转义符\;

{m,n}:匹配其前面的字符至少m次,至多n次;

位置锚定:

^    :锚定行首,表示该符号后的任意字符串,必须出现在行首;

$    :锚定行尾,表示改符号前的任意字符串,必须出现在行尾;

^$   :匹配空白行;

[]     :匹配指定范围内的任意单个字符,如[a-z]表示匹配一个小写字母;

[^]    :匹配指定范围外的任意单个字符,如[^a-z]表示匹配除小写字母外的一个字符;

锚定词首和词尾:

\<    :其后面的任意字符必须作为单词首部出现;

\>    :其前面的任意字符必须作为单词尾部出现;

分组:

使用()对内容进行分组,将其中内容作为一个整体匹配;


注:几个常用的非贪婪匹配Pattern

*? 重复任意次,但尽可能少重复

+? 重复一次货更多次,但尽可能少重复

?? 重复0次或1次,但尽可能少重复

{n, m}? 重复n到m次,但尽可能少重复

{n,}? 重复n次以上,但尽可能少重复

你可能感兴趣的:(04_03_管理及IO重定向04_04_grep及正则表达式)