访次: AmazingCounters.com 次

正则表达式/通配符/快捷键

 

 

 

1章 正则表达式 1

1.1 什么是正则表达式 1

1.2 为何使用正则表达式 1

1.3 正则表达式的分类 1

1.4 如何区分通配符和正则表达式 1

2章 通配符 1

3章 正则表达式 4

4章 快捷键 5

5章 第三关考试题 6

 

第1章 正则表达式

1.1 什么是正则表达式

1正则表达式就是为了处理大量的字符串而定义的一套规则和方法

2通过定义的这些特殊符号的辅助系统管理员就可以快速过滤替换出需要的字符串

3正则表达式一般以为单位处理

1.2 为何使用正则表达式

linux运维工作大量过滤日志工作化繁为简简单易用高效

三剑客都支持

1.3 正则表达式的分类

(1) 基本正则表达式 BRE

(2) 扩展正则表达式 ERE

(3) *BRE只承认的元字符有^ $ . [ ] *其他字符识别为普通字符;

   ERE则添加了( ) { } ? + | 等。

只有在用反斜杠\”进行转译的情况下,字符(){}才会在BRE被当作元字符处理,而ERE中,任何元符号前面加上反斜杠反而会使其当做普通字符来处理。

1.4 如何区分通配符和正则表达式

1)通配符应用非常广泛,存在于各种语言中,phpperlpython、三剑客都支持。而最常用正则表达式的命令是grepegrep)、sedawk一般只有他们三个能用。

2)表达式是文件目录就是通配符,表达式是文件内容(字符串)正则表达式。

3)通配符和正则表达式都有* [ ],但是通配符的这些符号都能自身代表任意字符,而正则表达式的这些符号只能代表这些符号前面的字#

第2章 通配符

*

代表任意(0个或多个)字符。

ls  file*

代表任意1个字符

ls  file0?

[abc]

匹配中括号中任何一个字符

ls  file0[678]  lsfile0[6-9]     

[a-z]

表示范围a-z,-表示范围的意思,[]匹配中括号中任意一个字符

 lsfile0[6-9]

{,,,}

中间为命令区块组合或者内容序列

{0,9}  {0..9}

[!abcd]

表示非abcd或者[^abcd],不匹配括号里任意一个字符

ls  file0[^678]

~

当前目录的家目录

 

用户上次所在目录              

cd - ,由变量OLDPWD控制 su- 切换用户的系统环境     env|grep -I oldpwd            OLDPWD=/root

.

当前目录

三种写法:1.ls  2.ls. 3.ls./

..

当前目录的上一级目录

cd..

>

输出重定向,会清空原文件内容,然后在原文件追加新内容

echo

>>

追加输出重定向,追加到文件最后一行

echo

<

输入重定向 tr   xargs

xargs -n 1 <oldboy.txt

<<

cat用来给文件追加多行文本内容

cat  >>/data/oldboy.txt<<EOF  neirong                                  EOF

#

超级用户的提示符;linux会忽视它,给人看的,解释说明

 

$

引用变量,取变量的值;$取列;$数字普通用户的命令提示符

"$OLDPWD"                            awk中取列awk  '{print $3,$6}' oldboy.txt

'

单引号,不具有变量置换功能,输出时所见及所得

 

“”

双引号,具备变量置换功能,解析变量输出

[root@root data]# echo "$OLDPWD"
/root

``

反引号,引用命令的结果,等价于$()

ls -l `which cat`

;

分隔多个命令,没有逻辑关系,只是一步步执行

cd /;mkdir test

\

转义符,屏蔽别名

 

/

根或者路径分隔符

 

!

1.表示非 find2.vi强制退出 3.!+字母 调出最近以此字母开头的命令 4.!!使用最近一次操作的命令5.!+数字 调出历史的几条命令

 

&&

并且

awk中NR9>&&<31

||

前一个命令执行失败后再执行后一个命令

tou ett.txt||touch test.txt

|

管道,将前一个命令的结果交给后一命令继续处理 xargs

cat test.txt|xargs -n 3

第3章 正则表达式

正则

作用

举例

^

以什么开头

[root@Bison data]# grep "^m" oldboy.txt

my blog is http://oldboy.blog.51cto.com

my qq num is 49000448.

my god ,i am not oldbey,but OLDBOY!

$

以什么结尾

[root@Bison data]# grep "m$" oldboy.txt

*

重复前面的字符0次到多次

[root@Bison data]# grep  "go*d" oldboy.txt

my god ,i am not oldbey,but OLDBOY!

good

gd

goood

.

代表且只能代表任意一个字符

1.[root@Bison data]# grep  "." oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

2.[root@Bison data]# grep  "oldb.y" oldboy.txt

.*

匹配所有字符 .*可以匹配0个或多个,可以匹配空行,而.匹配一个,不能匹配空行

[root@Bison data]# grep  ".*" oldboy.txt

 

\

转义字符 \n匹配一个换行符

 \.$  以点结尾的

[abc]          [0-9]            [\.,/]

匹配字符集合内任意一个字符,a或b或c

[root@Bison data]# grep  "[a-zA-Z0-9]" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

[^abc]

不匹配abc中任意一个字符

[root@Bison data]# grep  "[^a-z]" oldboy.txt

 

非正则表达式 

egrep  sed -r  awk  不需要加\

{m,n}

\{m,n\}

重复前面的字符m到n次

[root@Bison data]# grep  "0\{2,3\}" oldboy.txt

my qq num is 49000448.

not 4900000448.

{n}

\{n\}

重复前面的字符n次

[root@Bison data]# grep  "0\{2\}" oldboy.txt

my qq num is 49000448.

not 4900000448.

[root@Bison data]# grep -o "0\{2\}" oldboy.txt

00

00

00

{,n}

\{,n\}

重复前面的字符至多n次

 [root@Bison data]# egrep  "0{,2}" oldboy.txt

my qq num is 49000448.

not 4900000448.

[root@Bison data]# egrep -o "0{,2}" oldboy.txt

00

0

00

00

0

 

{n,}

\{n,\}

重复前面的字符至少n次

 [root@Bison data]# grep  "0\{2,\}" oldboy.txt

my qq num is 49000448.

not 4900000448.

[root@root data]#  grep -o "0\{2,\}" oldboy.txt

000

00000

|

\|

表示或者;同时过滤多个字符串

 [root@Bison data]# egrep  "oldboy|oldbey" oldboy.txt

I am oldboy teacher!

my blog is http://oldboy.blog.51cto.com

my god ,i am not oldbey,but OLDBOY!

加号

\+

重复前一个字符一次或多次

 [root@Bison data]# egrep  "go+d" oldboy.txt

my god ,i am not oldbey,but OLDBOY!

good

god

goood

\?

重复前一个字符0次或者一次

 [root@Bison data]# egrep  "go?d" oldboy.txt

my god ,i am not oldbey,but OLDBOY!

gd

god

()

\(\)

分组过滤,括号里的内容表示一个整体

 [root@Bison data]# egrep  "oldb(o|e)y" oldboy.txt

I am oldboy teacher!

my blog is http://oldboy.blog.51cto.com

my god ,i am not oldbey,but OLDBOY!

 

第4章 快捷键

ctrl +a

行首

ctrl +c

取消命令

ctrl +e

行尾

ctrl +l

清屏

ctrl +u

剪切光标以前的字符

ctrl +k

剪切光标以后的字符

tab

补全命令

ctrl +shift+v

粘贴

ctrl +shift+c

复制

第5章 第三关考试题

    

 

posted @   IT老登  阅读(887)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
访次: AmazingCounters.com 次
点击右上角即可分享
微信分享提示