我的朗科运维第六课(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)

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

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

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

位置锚定字符:

行锚定:

行首锚定:^

行尾锚定:$

字锚定:

字首锚定:\<或\b

字尾锚定:\>或\b

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

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

时间: 2024-10-09 10:13:10

我的朗科运维第六课(1)的相关文章

我的朗科运维第七课

shell脚本编程 在讲shell脚本编程前,先了解一下bash的颜色显示规则: bash的颜色显示规则是按照ASCII编码对颜色进行设置的:其一些常用的编码有: \033:Ctrl键: [:控制颜色属性命令: 0m:关闭颜色属性命令: 1m:加粗显示文本字符: 4m:为文本字符加下划线标识: 5m:使文本字符闪烁: 7m:将文本字符的背景色和前景色交换显示: 8m:将文本字符的背景色和前景色设置为相同颜色: 30m-39m:设置文本字符的前景色:38m和39m暂时保留: 40m-49m:设置文

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

为了更好地保护系统的安全,linux系统中采用了用户权限管理. 其中用户的权限分为:普通权限.特殊权限.文件的特殊权限.FACL. 普通权限: 进程安全上下文: 1.判断进程的所有者是否为想要操作的属主,如果是,就按照属主的权限进行授权:如果不是,就转到第二条: 2.判断进程的所有者是否为想要操作的文件的属组中的成员,如果是,就按照属组的权限进行授权:如果不是,就转到第三条: 3.按照其他用户的权限进行授权: 权限的构成: MODE(Permission):使用权 r:Readable:可读 w

我的朗科运维第四课(2)

用户和组的管理 所采用的认证为Cisco开发的AAA认证体系: Authetication:认证,核实身份是否正确: Authorization:授权,对已经核实身份的用户进行资源分配: Accounting:审计,监管资源被使用的情况: Linux是一个多用户.多任务的系统: 能够实现资源使用和完成的任务的主体是:应用程序进程 进程是以其发起者的身份运行的:可以理解为:进程的所有者就是发起者:会将发起者信息标记在进程上: 当进程试图访问资源的时候,安全上下文会对比进程的所有者和资源的所有者的关

我的朗科运维第八课

shell编程之执行结构 case分支选择结构: case 词 in [模式 [| 模式] ...) 命令 ;; ] ... esac case 变量引用 in 模式1) 分支1 ;; 模式2) 分支2 ;; ... *) 默认分支 ;; esac 模式(PATTERN): 1.普通的文本字符 2.globbing风格的通配符 *:任意长度任意字符 ?:任意的单个字符 []:范围内的任意单个字符 [^]:范围外的任意单个字符 3.|:或 例:提示用户输入信息,然后判断用户输入的信息是否合法: #

Linux运维第六课----Linux命令及Linux基础优化

一.替换文件1.已知在/root/data中存在op.txt,如何把/root/afeng/op.txt拷贝到data目录并替换2.1[[email protected] /]# \cp /root/afeng/op.txt /root/data/2.2[[email protected] ~]# /bin/cp /root/data/op.txt /root/afeng/二.vim的快捷键G到达底层gg到达首层o进入下行编辑u撤销:wq 保存并退出:q!强制退出三.设置别名1.为什么设置别名安

Linux云自动化运维第四课

Linux云自动化运维第四课 一.vim 1.vim光标移动 1)在命令模式下 :数字  ###移动到指定的行 G  ###文件最后一行 gg  ###文件第一行 2)在插入模式下 i  ###光标所在位置插入 I  ###光标所在行行首 a  ###光标所在字符的下一个位置 A  ###光标所在行行尾 o  ###光标所在行下一行 O  ###光标所在行上一行 s  ###删除光标所在字符插入 S  ###删除光标所在行插入 2.vim的退出模式 :q  ###当用vim打开文件但没有对字符作

Linux运维第七课----Linux基础优化

一.find找出文件,并替换文件内容[[email protected] ~/data]# find /root/data/ -type f -name '.txt' ./oldboy.txt./acheng.txt./magua.txt./op.txt1.方法一 [[email protected] ~/data]# find /root/data/ -type f -name '.txt' -exec sed -i 's#sh#hs#g'[[email protected] ~/data]#

最新linux运维高级架构课13期 架构师课程

有会员购买的,分享给大家.完整一套,可以学习一下. ├─L001-2017linux运维高级架构师13期-运维与自动化运维发展-10节 │      1-1运维职业发展.avi │      1-2运维职业发展.avi │      1-3运维职业发展.avi │      10-1ITIL故障管理和问题管理.avi │      10-2ITIL故障管理和问题管理.avi │      10-3ITIL故障管理和问题管理.avi │      2-1运维知识系统和分类.avi │      2

[运维] 第六篇:告警是数据中心运维的核心驱动力!

告警事件是数据中心运维的核心驱动力,我们做的所有运维工作都是要减少业务出现故障的概率,提供更高的业务可用性.不知道大家是否认可这句话?还是看这张图,通过这张图,把这个问题讲透:        作为综合事件管理平台自身,需要有这样几个部件:1 丰富事件接口.作为数据中心的核心驱动引擎,需要有丰富的事件接口可以将各种IT事件,甚至非IT事件接收过来,常见的接口有rest.web service.snmp.soap.socket.xml.文本.jdbc等.因为面对的对象不同,所以能够使用的方式是完全不