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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通配符 特殊符号与正则表达式相关的知识,希望对你有一定的参考价值。

课前:磁盘空间不足系列:
原因 排查过程 解决
1.block df -h; du -sh /data/* 具体的文件或目录 确认之后删除
2.block(硬连接数为0 进程调用数不为0) lsof|grep delete 重启对应的服务
3.inode df -i; 找出系统中大于1M的目录 删除大量小文件
时间:
Mtime Modify time 修改时间
Ctime Change time 文件属性变化时间
atime Access time 访问时间(cat)
Stat/etc/hosts 三种时间同时查看
第1章 通配符与特殊符号
1.1 特殊符号
引号系列:‘’所见即所得
“”解析里面的特殊符号
``反引号 优先执行里面的内容$()===
不加引号跟双引号类似 会执行{}里面的内容
重定向符号:> 标准输出重定向 先把文件内容清空追加

>标准输出追加重定向
2> 标准错误输出重定向
2>>标准错误输出追加重定向
<标准输入重定向 xargs tr下使用
<<标准输入追加重定向 与cat配合追加多行内容 cat>>oldboy.txt<<EOF oldboyedu.com EOF
2>&1把错误的内容和正确的内容记录到文件中 echo oldboy >/tmp/log 2>&1
位置系列
~ 家目录
.当前目录
..上一级目录
-cd- 上一级所在位置 su – 切换用户
&& and||
Ifdown eth0 关闭eth0

1.1.1 $ ! ; 的区别

注释 root用户的命令提示符

$ Awk取出某一列 普通用户的命令的提示符
!ls 找出最近一次以ls开头的命令并执行
!! 运行上一次的命令
; 在同一行中分割多条命令
1.2 通配符

  • 所有 以…..结尾 以……开头
    {} 生成序列
    1.2.1 #找出以.conf结尾的文件
    find / -type f -name ".conf"
    1.2.2 #找出系统中文件名包含ifconfig (文件名中有ifconfig就行)
    [[email protected] ~]# 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

[[email protected] ~]# 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.2.3 #{} 生成序列
[[email protected] ~]# echo stu0{01..5} 生成stu001 .. stu005
Stu001 stu002 stu003 stu004 stu005
[[email protected] ~]# echo {1,5,100} 生成1 5 100
1 5 100
[[email protected] ~]# echo stu{01..10} 生成stu01..stu10
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10
[[email protected] ~]# echo stu{01..10..2} 生成有规律的数
stu01 stu03 stu05 stu07 stu09
1.2.4 通过 {} 进行备份
[[email protected] ~]# cp oldboy.txt{,.bak}
[[email protected] ~]# echo oldboy.txt{,.bak}
oldboy.txt oldboy.txt.bak
[[email protected] ~]# echo A{,C}
A AC
[[email protected] ~]# echo A{B,C}
AB AC
1.2.5 小结:
1.特殊符号
2. {} 通配符 查找文件 大多数命令都可以使用
ls
.txt
第2章 正则表达式配合三剑客进行过滤
中文符号 ‘’ “” () 。 …… ¥ | {} 【】
英文符号 ‘‘ "" () .
^ $ | {} []
2.1.1 给grep egrep配置别名并永久生效
完成后重新登录进行验证
alias grep=‘grep --color‘
alias egrep=‘egrep --color‘

2.1.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!
2.1.2.1 以....开头的行 ^m
[[email protected] /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 显示文件中所有符号 每行结尾都会有个$
2.1.3 第2个符号 $ 以....结尾的行

[[email protected] /oldboy]# grep ‘ $‘ oldboy.txt 以空格结尾的行
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
2.1.4 第三个符号 ^$ 显示空行
[[email protected] oldboy]# grep -n ‘^$‘ oldboy.txt 过滤出文件中的空行并显示行号
3:
8:
11:
2.1.5 第4个符号 . 任意一个字符
[[email protected] /oldboy]# #grep ‘.‘ oldboy.txt 显示所有字符
-o grep命令执行过程
[[email protected] /oldboy]# grep -o ‘.‘ oldboy.txt 显示所有字符的过程

2.1.6 第5个符号 显示文件中以.(点)结尾的行
[[email protected] /oldboy]# grep ‘.$‘ oldboy.txt 显示文件中以.(点)结尾的行
I teach linux.
not 4900000448.
表示回车 按一次tab键的长度
[[email protected] /oldboy]# tr ‘ ‘ ‘ ‘ <oldboy.txt 将文件中的回车键替换为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! [[email protected] /oldboy]#
2.1.7 第6个符号 前一个字符连续出现了0次或0次以上
#显示grep ‘0
‘ oldboy.txt 每次匹配了什么 (执行过程)
[[email protected] oldboy]# grep -o ‘0*‘ oldboy.txt
000
00000

#正则表达式-坑1-grep ‘0‘ 会把文件内容都显示出来
#0
0次 没有 grep ‘‘ 会把文件内容都显示出来

0次以上 0 00000000000

2.1.8 第7个符号. 显示所有
[[email protected] /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!
正则表达式的贪婪性
替你寻找的文字符号 有多少吃多少 有多少匹配多少
正则中表示 连续出现或所有的时候
[[email protected] /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!
2.1.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

以上是关于通配符 特殊符号与正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

12.25-- 特殊符号系列,通配符与正则表达式

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

正则表达式 特殊符号系列 通配符系列

Day15 - linux的特殊符号与正则表达式

linux内特殊符号通配符正则表达式

通配符&正则表达式&特殊符号总结