通配符、特殊符号、正则表达式

 

作者:左婷婷

归档:学习笔记

2018/7/31

 

快捷键:

Ctrl + 1    标题1

Ctrl + 2    标题2

Ctrl + 3    标题3

Ctrl + 4    实例

Ctrl + 5    程序代码

Ctrl + 6    正文

格式说明:

蓝色字体:注释

×××背景:重要

绿色背景:注意


老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结

学无止境,老男孩教育成就你人生的起点!

联系方式:

网站运维QQ交流群:

Linux  385168604

架构师 390642196

Python 29215534

大数据 421358633

官方网站:

http://www.oldboyedu.com


 

1.1 时间... 2

1.2 通配符与特殊符号... 2

1.2.1 引号系列... 2

1.2.2 重定向符号... 2

1.2.3 位置符号... 3

1.2.4 &&||. 3

1.2.5 #   $    !   ; 的区别... 3

1.3 通配符... 3

1.3.1 #找出.conf结尾的文件... 4

1.3.2 #找出系统中文件名包含ifconfig (文件名中有ifconfig就行) 4

1.3.3 #{} 生成序列... 4

1.3.4 通过 {} 进行备份... 4

1.3.5 小结:... 5

1.4 正则表达式配合三剑客进行过滤... 5

1.4.1 grep egrep配置别名并永久生效... 5

1.4.2 1个符号   ^  ....开头的行... 5

1.4.3 2个符号   $  ....结尾的行... 6

1.4.4 第三个符号   ^$ 显示空行... 6

1.4.5 4个符号  .  任意一个字符... 6

1.4.6 5个符号显示文件中以.()结尾的行... 6

1.4.7 6个符号前一个字符连续出现了0次或0次以上... 7

1.4.8 7个符号.*   显示所有... 7

1.4.9 8个符号  [ ] 8

1.5 总结:... 8

1.6 预习... 8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.1 时间

mtime

Modify   time    修改时间

 

Ctime

Change   time    文件属性变化时间 

Atime

Access   time     访问时间(cat

1.2 通配符与特殊符号

1.2.1 引号系列

‘’  单引号

所见即所得

“” 双引号

特殊符号会被解析运行

`` 反引号

优先执行里面的内容

不加引号

类似双引号,会执行{}里面的内容

1.2.2 重定向符号

标准输出重定向

>> 

标准输出追加重定向

2>

标准错误输出重定向

2>>

标准错误输出追加重定向

 

输入重定向

 

tr



xargs

<< 

追加输入重定向

2>&1

错误正确都输出

1.2.3 位置符号

~

家目录

.

当前目录

..

上一级目录

-

cd –   上一次所在位置

Su  -   切换用户

 

 

1.2.4 &&||

&&

前一个命令执行成功再执行后一个命令 (ifdown  eth0    &&  ifup   eth0)

||

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

[root@oldboyedu50 ~]# ls  /data   &&   echo 目录已存在      &&的用法

oldboy

目录已存在

[root@oldboyedu50 ~]# ls  /dat   ||   echo 目录已存在      ||的用法

ls: 无法访问/dat: 没有那个文件或目录

目录已存在

1.2.5 #   $   !   ; 的区别

#

注释  root用户的命令提示符

$

Awk取出某一列  普通用户的命令的提示符

!ls

找出最近一次以ls开头的命令并执行

!!

运行上一次的命令

;

在同一行中分割多条命令

1.3 通配符

*

所有   …..结尾  ……开头

{}

生成序列

1.3.1 #找出.conf结尾的文件

find /   -type f -name "*.conf"

 

1.3.2 #找出系统中文件名包含ifconfig (文件名中有ifconfig就行)

[root@oldboyedu50-lnb ~]# find /  -type f  -name "*ifconfig*"  找出系统中文件名包含ifconfig

/usr/sbin/pifconfig

/usr/share/man/de/man8/ifconfig.8.gz

/usr/share/man/pt/man8/ifconfig.8.gz

/usr/share/man/fr/man8/ifconfig.8.gz

/sbin/ifconfig

 

 

[root@oldboyedu50-lnb ~]# find /  -type f  |grep ifconfig   找出系统中文件名包含ifconfig

/usr/sbin/pifconfig

/usr/share/man/man8/pifconfig.8.gz

/usr/share/man/man8/ifconfig.8.gz

/usr/share/man/fr/man8/ifconfig.8.gz

/sbin/ifconfig

1.3.3 #{} 生成序列

[root@oldboyedu50-lnb ~]# echo stu0{01..5}      生成stu001 .. stu005

Stu001 stu002 stu003 stu004 stu005

 [root@oldboyedu50-lnb ~]# echo {1,5,100}   生成1 5 100

1 5 100

[root@oldboyedu50-lnb ~]# echo stu{01..10}      生成stu01..stu10

stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10

[root@oldboyedu50-lnb ~]# echo stu{01..10..2}   生成有规律的数

stu01 stu03 stu05 stu07 stu09

1.3.4 通过 {} 进行备份

[root@oldboyedu50-lnb ~]# cp  oldboy.txt{,.bak}

[root@oldboyedu50-lnb ~]# echo oldboy.txt{,.bak}

oldboy.txt oldboy.txt.bak

[root@oldboyedu50-lnb ~]# echo A{,C}

A AC

[root@oldboyedu50-lnb ~]# echo A{B,C}

AB AC

1.3.5 小结:

1.特殊符号

2.* {} 通配符 查找文件  大多数命令都可以使用

ls *.txt

1.4 正则表达式配合三剑客进行过滤

中文符号      ‘’ “” () * …… | {}  【】

   英文符号      '' ""  ()  .  * ^   $ |  {}  []

 

1.4.1 grep egrep配置别名并永久生效

完成后重新登录进行验证

alias grep='grep --color'

alias egrep='egrep --color'

1.4.2 1个符号   ^  ....开头的行

cat 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 size is http://blog.oldboyedu.com

my qq is 49000448

 

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

1.4.2.1     ....开头的行 ^m

[root@oldboyedu50-lnb /oldboy]# 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!

cat -A 显示文件中所有符号  每行结尾都会有个$

1.4.3 2个符号   $  ....结尾的行

 

[root@oldboyedu50-lnb /oldboy]# grep ' $'  oldboy.txt    以空格结尾的行

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

our size is http://blog.oldboyedu.com

1.4.4 第三个符号  ^$ 显示空行

 [root@oldboyedu50 oldboy]# grep -n '^$'  oldboy.txt    过滤出文件中的空行并显示行号

3:

8:

11:

1.4.5 4个符号  .  任意一个字符

[root@oldboyedu50-lnb /oldboy]# #grep  '.' oldboy.txt     显示所有字符

-o   grep命令执行过程

[root@oldboyedu50-lnb /oldboy]# grep -o '.' oldboy.txt    显示所有字符的过程

 

1.4.6 5个符号显示文件中以.()结尾的行  

    [root@oldboyedu50-lnb /oldboy]# grep  '\.$' oldboy.txt     显示文件中以.()结尾的行

I teach linux.

not 4900000448.

   \n  表示回车   \t 按一次tab键的长度    

[root@oldboyedu50-lnb /oldboy]# tr  '\n'   '\t'    将文件中的回车键替换为tab键

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! [root@oldboyedu50-lnb /oldboy]#

1.4.7 6个符号前一个字符连续出现了0次或0次以上

#显示grep '0*' oldboy.txt 每次匹配了什么  执行过程

[root@oldboyedu50 oldboy]# grep -o '0*'  oldboy.txt

000

00000

 

#正则表达式-1-grep '0*' 会把文件内容都显示出来

#0*    0   没有  grep ''      会把文件内容都显示出来

#      0次以上   0 00000000000

1.4.8 7个符号.*   显示所有

[root@oldboyedu50-lnb /oldboy]# grep '.*' 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 size is http://blog.oldboyedu.com

my qq is 49000448

 

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

正则表达式的贪婪性

替你寻找的文字符号     有多少吃多少  有多少匹配多少

正则中表示 连续出现或所有的时候

[root@oldboyedu50-lnb /oldboy]# grep '^.*o' oldboy.txt

I am oldboy teacher!

I like badminton ball ,billiard ball and chinese chess!

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

our size is http://blog.oldboyedu.com

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

1.4.9 8个符号  [ ]

grep '[a-z]' oldboy.txt               过滤出a-z

grep '[A-Z]' oldboy.txt

grep '[0-9]' oldboy.txt

grep '[a-zA-Z]' oldboy.txt

grep '[a-Z]' oldboy.txt                        过滤出大小写的a-z  只有在grep中可以使用

grep -i '[a-z]' oldboy.txt                    -i 不区分大小写  ignore case

  

1.5 总结:

1.正则表达式与通配符区别

2.基础正则表达式

3.linux三种时间

 

1.6 预习

扩展正则

取出网卡ip地址

ip a       s    eth0

ip address show eth0

取出权限

[root@oldboyedu50-lnb /oldboy]# stat /etc/hosts

  File: `/etc/hosts'

  Size: 186         Blocks: 8          IO Block: 4096   regular file

Device: 803h/2051d  Inode: 917212      Links: 2

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2018-07-27 15:38:30.054327904 +0800

Modify: 2018-07-26 11:19:57.307441572 +0800

Change: 2018-07-27 15:38:30.001327904 +0800