Linux中的特殊符号与正则表达式

2019-09-23 09:03:13于丽

不加引号

[root@znix ~]# echo $LANG $(pwd) `hostname` {1..3}
en_US.UTF-8 /root znix 1 2 3

`  `

反引号 先运行,把结果留下 与$()作用相同

[root@znix ~]# du -sh  `find -type d`

764K    .

第2章 正则表达式

2.1 什么是正则

特殊符号表示文字 文本

^      开头

[0-9]  数字

2.2 作用

提高效率 省事

2.3 分类

2.3.1 基础正则表达式

^ $  ^$ . * .* [0-9] [^0-9]

2.3.2 扩展正则表达式

|  ()  +   {}  ? 

2.4 正则表达式与通配符的区别

1、通配符是用来找文件的。

2、正则表达式用来的文件中找内容、文本。

2.5 基础正则表达式

2.5.1 环境准备

cat -A 在每一行最后加上一个$符号。

[root@znix ~]# oldboy.txt
I am oldboy teacher!$
I teach linux.$
$
I like badminton ball ,billiard ball and chinese chess!$
my blog is http://oldboy.blog.51cto.com$
$
our site is http://www.etiantian.org$
$
my qq num is 49000448.$
$
not 4900000448.$
my god ,i am not oldbey,but OLDBOY!$

2.5.2 找以m开头的行 ^

^m 表示以m开头,^表示以什么开头。

[root@znix ~]# 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!

2.5.3 以m结尾的行结尾的行 $

m$ 表示以m结尾。

[root@znix ~]# grep "m$" oldboy.txt
my blog is http://oldboy.blog.51cto.com

2.5.4 显示空行,并且加上行号

-n 显示行号

^$ 表示开头和结尾中间没有东西,即空行

[root@znix ~]# grep -n "^$" oldboy.txt

3:

6:

8:

10:

2.5.5 表示任意一个字符 . (点)

点表示任意一个字符,oldb.y 表示点的位置是什么都可以 。

[root@znix ~]# grep "oldb.y" oldboy.txt
I am oldboy teacher!
my blog is http://oldboy.blog.51cto.com
my god ,i am not oldbey,but OLDBOY!

grep -o 显示grep/egrep执行的过程(每一次找到的东西)。

[root@znix ~]# grep -o "." oldboy.txt
[root@znix ~]# grep -o "oldb.y" oldboy.txt
oldboy
oldboy
oldbey

2.5.6 找到以点结尾的行

转意符号,把特殊含义的的去掉特殊含义。

.$ 表示以点结尾。

[root@znix ~]# grep '.$' oldboy.txt
I teach linux.
my qq num is 49000448.
not 4900000448.

2.5.7 * 前一个文本连续出现了0次或1次以上

连续出现了0次就是没出现

-o 显示grep找到的过程

[root@znix ~]# grep "0*" oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
[root@znix ~]# grep -o "0*" oldboy.txt
000
00000