liunx之通配符&正则表达式
<h1>LIUNX之通配符<button class="cnblogs-toc-button" title="显示目录导航" aria-expanded="false"></button></h1>
- 单引号双引号不加引号区别反引号
- '' 单引号所见即所得
- “”双引号里面的特殊符号会被解析运行
- $ LANG $()``
- 不加引号和双引号类似支持通配符 {} *
- 通配符:方便找出文件
``$()优先执行先执行里面的命令把结果留下
[root@oldboy56-201 ~]# which mkdir #查询 mkdir 目录在哪里
/usr/bin/dir
[root@oldboy56-201 ~]# ls -l `which mkdir` #先执行 ` 反义符里面 `
-rwxr-xr-x. 1 root root 79760 Apr 11 2018 /usr/bin/mkdir
[root@oldboy56-201 ~]# ls -l $(which mkdir)
-rwxr-xr-x. 1 root root 79760 Apr 11 2018 /usr/bin/mkdir
liunx 之正则表达式
基本正则表达式第一波
- ^ word:以字开头
grep '^m' oldboy.txt #查找以 m 开头的文字
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
my god ,i am not oldbey,but OLDBOY!
- 字 $:以字结尾的
[root@oldboy56-201 oldboy]# grep "m$" oldboy.txt #以 m 结尾的文件
ldmam
- ^ $:空行
[root@oldboy56-201 oldboy]# grep '^$' oldboy.txt #'^$' :空行
[root@oldboy56-201 oldboy]# grep -n '^$' oldboy.txt
6:
11:
[root@oldboy56-201 oldboy]# cat -n oldboy.txt
1 ldmam
2 this is boy
3 this is boy
4 I am oldboy teacher!
5 I teach linux.
6
7 I like badminton ball ,billiard ball and chinese chess!
8 my blog is http://oldboy.blog.51cto.com
9 our size is http://blog.oldboyedu.com
10 my qq is 49000448
11
12 not 4900000448.
13 my god ,i am not oldbey,but OLDBOY!
14 job jb joooob
基本正则之第二波
- 。代表和代表一个字符(对比下面的代码出现缺少 6 和 11 行的空行。相当于有一个字符空格的则被的过滤了)
[root@oldboy56-201 oldboy]# cat -n oldboy.txt
1 ldmam
2 this is boy
3 this is boy
4 I am oldboy teacher!
5 I teach linux.
6
7 I like badminton ball ,billiard ball and chinese chess!
8 my blog is http://oldboy.blog.51cto.com
9 our size is http://blog.oldboyedu.com
10 my qq is 49000448
11
12 not 4900000448.
13 my god ,i am not oldbey,but OLDBOY!
14 job jb joooob
[root@oldboy56-201 oldboy]# grep -n "." oldboy.txt
1:ldmam
2:this is boy
3:this is boy
4:I am oldboy teacher!
5:I teach linux.
7:I like badminton ball ,billiard ball and chinese chess!
8:my blog is http://oldboy.blog.51cto.com
9:our size is http://blog.oldboyedu.com
10:my qq is 49000448
12:not 4900000448.
13:my god ,i am not oldbey,but OLDBOY!
14:job jb joooob
- 转义转的将将将的文件)
[root@oldboy56-201 oldboy]# grep -n ".$" oldboy.txt
1:ldmam
2:this is boy
3:this is boy
4:I am oldboy teacher!
5:I teach linux.
7:I like badminton ball ,billiard ball and chinese chess!
8:my blog is http://oldboy.blog.51cto.com
9:our size is http://blog.oldboyedu.com
10:my qq is 49000448
12:not 4900000448.
13:my god ,i am not oldbey,but OLDBOY!
14:job jb joooob
[root@oldboy56-201 oldboy]# grep -n "\.$" oldboy.txt
5:I teach linux.
12:not 4900000448.
- * 前面一个字符连续出现了 0 次或 0 次以上
[root@oldboy56-201 oldboy]# grep "0*" oldboy.txt
ldmam
this is boy
this is boy
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 size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
job jb joooob
- 。* 匹配所有字符延伸 ^。* 以所有字符开头,以所有字符结尾(如下图所有的字符都输出了。* 匹配了所有字符)
[root@oldboy56-201 oldboy]# grep ".*" oldboy.txt
ldmam
this is boy
this is boy
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 size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
job jb joooob
基础正则表达式第三部
- [abc] 相当于是一个符号(每次匹配 1 个字符)找出包含 a 或 b 或 c(如下例子匹配所有小写字母)
[root@oldboy56-201 oldboy]# grep "[a-z]" oldboy.txt
ldmam
this is boy
this is boy
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 size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
job jb joooob
- [^ abc] 匹配不包含 ^ 后任意一个字符的内容,中括号中 ^ 为取反,注意和中括号 ^ 开头区分(匹配所有大写字母)
-
[root@oldboy56-201 oldboy]# grep "[^a-z]" oldboy.txt this is boy this is boy 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 size is http://blog.oldboyedu.com my qq is 49000448 not 4900000448. my god ,i am not oldbey,but OLDBOY! job jb joooob
<h2> </h2> </li>
扩展正则表达式
-
0 {nm} 前一个字符至少连续出现 n 次,连续出现 m 次
-
[root@oldboy56-201 oldboy]# egrep "0{1,4}" oldboy.txt my qq is 49000448 not 4900000448.
<p> </p> </li> <li> <p>0 {n}前面一个字符连续出现n次</p> <pre class="has highlighter-hljs" highlighted="true"><code class="highlighter-hljs hljs language-css"><span class="hljs-selector-attr">[root@oldboy56-201 oldboy]</span># egrep <span class="hljs-selector-attr">[0-9]</span>{<span class="hljs-number">17</span>}<span class="hljs-selector-attr">[0-9X]</span> id<span class="hljs-selector-class">.txt</span>
金 211324198705244720
万 500224197105168312
吕 211282199209113038
孔 150000198309176071
邹 371001197412221284
贺 130185200011215926
杜 362522198711278101
向 14052219961008852X<p> </p> </li>