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

1.1 重定向符号

输出重定向 先清空文件,追加
> 追加输出重定向 追加
< 输入重定向 与 xargs tr
<< 追加输入重定向
cat 向一个文件追加多行。
cat >>/oldboy/alex.txt<<EOF
Love me, love my dog.
Love Li, love li‘s dog.
EOF
1.2 表示位置的

.(点) 当前目录
.. 当前目录上一级目录
~ 当前用户的家目录
1.3 特殊符号

注释 root用户的命令提示符
$ 取变量的内容(命令行) 取某一列(awk) 普通用户的命令提示符
! 查找最近一次使用过的命令然后执行 find排除/取反 awk取反 vim强制
history |grep awk
| 管道
; 分割多条命令。
1.4 引号系列

`` $()
‘‘ 所见即所得,原封不动显示出来
"" 解析特殊符号
1.5 简单判断

&& 前一个命令执行成功 ,执行后面的命令
ifdown eth0 && ifup eth0
|| 前一个命令执行失败,执行后面的命令
ls /alex || echo 目录不存在
通配符
2.1 什么作用?
方便大家查找出文件的(文件名)。
Linux大部分命令都支持。

.txt
.log
2.2 常见的通配符

2.2.1 所有 任何东西
以.txt结尾 .txt
以.log结尾 *.log

系统中以ls开头的文件。
find / -type f -name "ls*"

找出系统中文件名包含oldboy的文件。
find / -type f -name "oldboy"
2.2.2 {} 生成序列

echo {1..10}
echo {10..1}
echo {01..10}
echo {01..100}
echo {a..c}
echo {a..z}
echo {A..Z}

[[email protected] ~]# echo stu{01..10}
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10
[[email protected] ~]# echo 20{01..10}
2001 2002 2003 2004 2005 2006 2007 2008 2009 2010

2.3 通过{}
[[email protected] ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[[email protected] ~]# echo {a c f}
{a c f}
[[email protected] ~]# echo {a,c,f}
a c f

[[email protected] ~]# echo A{B,C}
AB AC
[[email protected] ~]# echo A{,C}
A AC
[[email protected] ~]# echo oldboy.txt{,.bak}
oldboy.txt oldboy.txt.bak
[[email protected] ~]# touch oldboy.txt
[[email protected] ~]# cp oldboy.txt{,.bak}
cp: overwrite `oldboy.txt.bak‘? y
[[email protected] ~]# ls -l oldboy.txt
[[email protected] ~]# ls -l oldboy.txt
-rw-r--r-- 3 root root 0 Nov 11 23:50 oldboy.txt
-rw-r--r--. 1 root root 0 Nov 11 23:50 oldboy.txt.bak
-rw-r--r-- 3 root root 0 Nov 11 23:50 oldboy.txt-hard
[[email protected] ~]#
[[email protected] ~]# #cp oldboy.txt{,.bak}
[[email protected] ~]# echo oldboy.txt{,.bak}
oldboy.txt oldboy.txt.bak
[[email protected] ~]# echo A{,C}
A AC

2.4 通配符小结
1)查找文件
2)* {}

如何记住不忘记
1.看-思考-你认为你会了
2.命令-多敲
3.命令和知识点 流程图-绘制思维导图(processon.com + xmind)
4.绘图===回顾===整理
5.先走通路,然后变通
6.说出来,不会(先问问别人,然后再给别人说)

是否会了-总结:
1.绘图
2.说出来

正则表达式 RE regular expression
3.1 什么是正则 为何用它?

你可以通过什么方法选出这里面的×××号码。

440304199604012792
130528197108126121
3605sss98304033896
342923198310042132
1404ddddddddd5694X
61242619860416291X
5002xxxxxx04279521
330900199806382320
654126197703092303
131127197105115662

数字与X(在最后一位)

通过符号匹配查找出各种文字。
正则表达式通过特殊符号 ^ $ [] . * 表示各种各样的文字。

方便我们处理文本(日志)。

3.2 谁可以使用正则
三剑客正则(grep sed awk )
python java

3.3 正则表达式与通配符区别
正则---在文件中进行过滤(查找文件内容) 三剑客支持
通配符-找出文件(文件名) 大部分命令都可以使用

3.4 使用正则注意事项:
3.4.1 正则默认是按照行为单位处理。
3.4.2 一定要注意不要使用中文符号。
. ‘‘""^ `` ( ) {} [] <>
。‘’“”……··( ){}【】《》
3.4.3 给grep/egrep加上别名
cat >>/etc/profile<<EOF
alias grep=‘grep --color=auto‘
alias egrep=‘egrep --color=auto‘
EOF
source /etc/profile
查看是否更改:grep 3306 /etc/services

3.5 正则分类
基础正则: ^ $ . * []

扩展正则: + | () {} ?

3.6 环境准备
/oldboy/re.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!

3.7 基础正则-BRE basic regular expression
3.7.1 ^ ^m 表示以....开头的行
[[email protected] oldboy]# grep ‘^m‘ re.txt
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
my god ,i am not oldbey,but OLDBOY!

3.7.2 m$ 表示以....结尾的行
[[email protected] oldboy]# cat -A re.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 $ #注意此处结尾是空格不是m
$
our size is http://blog.oldboyedu.com $ #注意此处结尾是空格不是m
$
my qq is 49000448$
$
not 4900000448.$
my god ,i am not oldbey,but OLDBOY!$

3.8 删除结尾的空格
[[email protected] oldboy]# vim re.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!

3.9 检查是否修改成功
[[email protected] oldboy]# cat -A re.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]#
[[email protected] oldboy]# grep ‘m$‘ re.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com

3.10 cat -A #显示出文件中所有的符号 $这一行的结尾
[[email protected] oldboy]# grep ‘ ‘ re.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!
3.10.1 ^$ 空行 这一行里面什么都没有
[[email protected] oldboy]# grep -n ‘^$‘ re.txt
3:
6:
8:
10:

练习题:排查文件中的空行
[[email protected] oldboy]# grep -v ‘^$‘ re.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!

4.1 . 任意一个字符 不会匹配空行
#grep -o ‘.‘ re.txt
#-o 显示grep的执行过程,grep每一次找出什么
grep -o ‘.‘ re.txt

#-o 显示grep的执行过程,grep每一次找出什么
#-o 的结果中 每一行表示 grep每次找出什么
[[email protected] oldboy]# grep ‘0‘ re.txt
my qq is 49000448
not 4900000448.
[[email protected] oldboy]# grep -o ‘0‘ re.txt
0
0
0
0
0
0
0
0
[[email protected] oldboy]# grep ‘00‘ re.txt
my qq is 49000448
not 4900000448.
[[email protected] oldboy]# grep -o ‘00‘ re.txt
00
00
00
4.1.1 \ 撬棍 转义字符 去掉符号特殊含义 脱掉马甲,打回原形

显示出文件中 以.结尾的行?
[[email protected] oldboy]# grep ‘.$‘ re.txt
I teach linux.
not 4900000448.

撬棍系列 转义字符系列
\n ====== 回车
4.1.2 * 前一个字符连续出现0次或0次以上

[[email protected] oldboy]# grep ‘0*‘ re.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]#
[[email protected] oldboy]# grep ‘0*‘ re.txt -o
000
00000

4.1.3 连续出现
4.1.4 正则表示连续出现的时候,会尽可能的匹配(吃)更多的符号 贪婪性
[[email protected] oldboy]# #0 表示0连续出现0次
[[email protected] oldboy]# #0 表示0连续出现1次及1次以上
[[email protected] oldboy]# #0
[[email protected] oldboy]# #000
[[email protected] oldboy]# #0000000
[[email protected] oldboy]# #0 表示0连续出现0次
[[email protected] oldboy]# #‘0‘ 只出现0次的时候 ====== ‘‘
[[email protected] oldboy]# #会把整个文件的内容都显示出来
[[email protected] oldboy]# grep ‘‘ re.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!

4.2 小结正则之*:

1]] 贪婪性
2]] 连续出现

4.3 .* 所有 任何符号

#在正则中表示连续出现 表示所有 贪婪性
4.3.1 找出文件中以字母m开头的行 并且 以m结尾的行
grep ‘^m.*m$‘ re.txt
[[email protected] oldboy]# grep ‘^m‘ re.txt
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
my god ,i am not oldbey,but OLDBOY!
[[email protected] oldboy]# grep ‘^m‘ re.txt |grep ‘m$‘
my blog is http://oldboy.blog.51cto.com

[[email protected] oldboy]# grep ‘^m.*m$‘ re.txt
my blog is http://oldboy.blog.51cto.com

[[email protected] oldboy]# grep ‘^.*m$‘ re.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
[[email protected] oldboy]# grep ‘m$‘ re.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com

[[email protected] ~]# grep ‘.*m‘ re.txt

4.4 [] [abc] 表示一个整体,a或b或c任意一个字符

[[email protected] oldboy]# grep ‘[abc]‘ re.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 god ,i am not oldbey,but OLDBOY!

grep ‘[abc]‘ re.txt -o
[[email protected] oldboy]# grep ‘[a-z]‘ re.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 ‘[A-Z]‘ re.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my god ,i am not oldbey,but OLDBOY!
[[email protected] oldboy]# grep ‘[a-zA-Z]‘ re.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!

4.5 #找出文件中以m或n开头的行
[[email protected] oldboy]# #第1个里程碑-m或n
[[email protected] oldboy]# grep ‘[mn]‘ re.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]# #第2个里程碑-以m或n开头的行
[[email protected] oldboy]# grep ‘^[mn]‘ re.txt
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!

grep ‘[a-z]‘ re.txt
grep ‘[A-Z]‘ re.txt
grep ‘[0-9]‘ re.txt

原文地址:http://blog.51cto.com/13859480/2152895

时间: 2024-10-16 10:41:38

正则表达式 特殊符号系列 通配符系列的相关文章

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

1.特殊符号 ' '  所见即所得.原样输出. " "  特殊符号会被解析运行 ` `   相当于$(),先运行括号里面的命令,把结果留下 > 重定向(先清空文件,再追加内容到文件) >>    追加重定向(在文件最后追加内容) 2>    错误重定向 2>>     错误追加重定向 ~       当前用户家目录 ! 查找并运行历史命令.eg:!sed   查找最近的一条,包含sed的命令并运行.一般不用这个,用:history |grep sed

linux文件属性、特殊符号、通配符、通配符与正则的区别

作者:Georgekai 归档:学习笔记 2017/12/25 本章正题:linux文件属性.特殊符号.通配符.通配符与正则的区别 1.1 软链接与硬连接的区别 1.1.1 1.创建软连接(怎么来的) cp -s 或 ln -s 意思一样 1.1.2 2.创建硬链接(怎么来的) ln  源文件  链接文件 1.1.3 区别(什么意思) 1.软连接相当于windows中快捷方式,存放的是源文件的位置 2.硬链接相当于是文件的入口.多个硬链接,相当于是超市的前后门 3.硬链接也是个普通文件 (-),

《PHP扩展学习系列》系列技术文章整理收藏

<PHP扩展学习系列>系列技术文章整理收藏 1PHP扩展之文本处理(二)--PCRE正则表达式语法10--后向引用http://www.lai18.com/content/321526.html 2PHP扩展之文本处理(二)--PCRE正则表达式语法9--重复/量词http://www.lai18.com/content/321525.html 3PHP扩展之文本处理(二)--PCRE正则表达式语法11--断言http://www.lai18.com/content/321527.html 4

特殊符号(通配符)知识点总结

##特殊符号与正则表达式的区别     #()在awk/sed/grep中使用的特殊符号-->正则表达式     #()在命令行或脚本中使用的特殊符号-->以下特殊意义 ##特殊符号(通配符)列表 < 0< 输入重定向 mail -s 1091*****@qq.com </etc/hosts.txt ##将host.txt中的内容写入的邮件内容 > 输出重定向 >> 追加输出重定向 不覆盖之前的内容,在文档最后继续写入追加的内容 |  管道 将前一个命令得到

《鸡啄米C++编程入门系列》系列技术文章整理收藏

<鸡啄米C++编程入门系列>系列技术文章整理收藏 收藏整理鸡啄米C++编程入门系列文章,供个人和网友学习C++时参考 1鸡啄米:C++编程入门系列之前言 2鸡啄米:C++编程入门系列之一(进制数) 3鸡啄米:C++编程入门系列之二(原码.反码与补码) 4鸡啄米:C++编程入门系列之三(VS2010的使用介绍) 5鸡啄米:C++编程入门系列之四(数据类型) 6鸡啄米:C++编程入门系列之五(运算符和表达式) 7鸡啄米:C++编程入门系列之六(算法的基本控制结构之选择结构) 8鸡啄米:C++编程入

《深入理解JavaScript系列》系列技术文章整理收藏

<深入理解JavaScript系列>系列技术文章整理收藏 深入理解JavaScript系列来自汤姆大叔的整理贴,原文地址http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 此处收藏供JavaScript学习参考 1深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 2深入理解JavaScript系列(2):揭秘命名函数表达式 3深入理解JavaScript系列(3):全面解析Module模式

《Artech的WCF剖析系列》系列技术文章整理收藏

<Artech的WCF剖析系列>系列技术文章整理收藏 1控制并发访问的三道屏障: WCF限流(Throttling)体系探秘[下篇] 2使命必达: 深入剖析WCF的可靠会话[实例篇](内含美女图片,定力差者慎入) 3使命必达: 深入剖析WCF的可靠会话[概念篇] 4WCF如何克服HTTP传输协议的局限提供对不同消息传输模式的实现 5WCF中并发(Concurrency)与限流(Throttling)体系深入解析系列[共7篇] 6使命必达: 深入剖析WCF的可靠会话[协议篇](上) 7使命必达:

《浅谈JavaScript系列》系列技术文章整理收藏

<浅谈JavaScript系列>系列技术文章整理收藏 1浅谈JavaScript中面向对象技术的模拟 2浅谈javascript函数劫持[转自xfocus]第1/3页 3浅谈javascript 面向对象编程 4老鱼 浅谈javascript面向对象编程 5浅谈javascript的数据类型检测 6浅谈Javascript嵌套函数及闭包 7根据一段代码浅谈Javascript闭包 8浅谈JavaScript编程语言的编码规范 9浅谈Javascript面向对象编程 10浅谈JavaScript

《Artech的ASP.NET系列》系列技术文章整理收藏

<Artech的ASP.NET系列>系列技术文章整理收藏 1浅谈ASP.NET的Postback 2ASP.NET:创建Linked ValidationSummary, 深入理解ASP.NET的Validation 3深入剖析ASP.NET的编译原理之一:动态编译(Dynamical Compilation) 4深入剖析ASP.NET的编译原理之二:预编译(Precompilation) 5ASP.NET Process Model之一:IIS 和 ASP.NET ISAPI 6ASP.NE