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}

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

2.3 通过{}
[root@oldboyedu42-lnb ~]# 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
[root@oldboyedu42-lnb ~]# echo {a c f}
{a c f}
[root@oldboyedu42-lnb ~]# echo {a,c,f}
a c f

[root@oldboyedu42-lnb ~]# echo A{B,C}
AB AC
[root@oldboyedu42-lnb ~]# echo A{,C}
A AC
[root@oldboyedu42-lnb ~]# echo oldboy.txt{,.bak}
oldboy.txt oldboy.txt.bak
[root@oldboyedu42-lnb ~]# touch oldboy.txt
[root@oldboyedu42-lnb ~]# cp oldboy.txt{,.bak}
cp: overwrite `oldboy.txt.bak'? y
[root@oldboyedu42-lnb ~]# ls -l oldboy.txt
[root@oldboyedu42-lnb ~]# 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
[root@oldboyedu42-lnb ~]#
[root@oldboyedu42-lnb ~]# #cp oldboy.txt{,.bak}
[root@oldboyedu42-lnb ~]# echo oldboy.txt{,.bak}
oldboy.txt oldboy.txt.bak
[root@oldboyedu42-lnb ~]# 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 表示以....开头的行
[root@oldboyedu42-lnb 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$ 表示以....结尾的行
[root@oldboyedu42-lnb 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 删除结尾的空格
[root@oldboyedu42-lnb 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 检查是否修改成功
[root@oldboyedu42-lnb 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!$
[root@oldboyedu42-lnb oldboy]#
[root@oldboyedu42-lnb oldboy]# grep 'm$' re.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com

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

练习题:排查文件中的空行
[root@oldboyedu42-lnb 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每次找出什么
[root@oldboyedu42-lnb oldboy]# grep '0' re.txt
my qq is 49000448
not 4900000448.
[root@oldboyedu42-lnb oldboy]# grep -o '0' re.txt
0
0
0
0
0
0
0
0
[root@oldboyedu42-lnb oldboy]# grep '00' re.txt
my qq is 49000448
not 4900000448.
[root@oldboyedu42-lnb oldboy]# grep -o '00' re.txt
00
00
00
4.1.1 \ 撬棍 转义字符 去掉符号特殊含义 脱掉马甲,打回原形

显示出文件中 以.结尾的行?
[root@oldboyedu42-lnb oldboy]# grep '.$' re.txt
I teach linux.
not 4900000448.

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

[root@oldboyedu42-lnb 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!
[root@oldboyedu42-lnb oldboy]#
[root@oldboyedu42-lnb oldboy]# grep '0*' re.txt -o
000
00000

4.1.3 连续出现
4.1.4 正则表示连续出现的时候,会尽可能的匹配(吃)更多的符号 贪婪性
[root@oldboyedu42-lnb oldboy]# #0 表示0连续出现0次
[root@oldboyedu42-lnb oldboy]# #0 表示0连续出现1次及1次以上
[root@oldboyedu42-lnb oldboy]# #0
[root@oldboyedu42-lnb oldboy]# #000
[root@oldboyedu42-lnb oldboy]# #0000000
[root@oldboyedu42-lnb oldboy]# #0 表示0连续出现0次
[root@oldboyedu42-lnb oldboy]# #'0' 只出现0次的时候 ====== ''
[root@oldboyedu42-lnb oldboy]# #会把整个文件的内容都显示出来
[root@oldboyedu42-lnb 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
[root@oldboyedu42-lnb 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!
[root@oldboyedu42-lnb oldboy]# grep '^m' re.txt |grep 'm$'
my blog is http://oldboy.blog.51cto.com

[root@oldboyedu42-lnb oldboy]# grep '^m.*m$' re.txt
my blog is http://oldboy.blog.51cto.com

[root@oldboyedu42-lnb oldboy]# grep '^.*m$' re.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
[root@oldboyedu42-lnb oldboy]# grep 'm$' re.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com

[root@oldboyedu-42mvp ~]# grep '.*m' re.txt

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

[root@oldboyedu42-lnb 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
[root@oldboyedu42-lnb 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!
[root@oldboyedu42-lnb 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!
[root@oldboyedu42-lnb 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开头的行
[root@oldboyedu42-lnb oldboy]# #第1个里程碑-m或n
[root@oldboyedu42-lnb 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!
[root@oldboyedu42-lnb oldboy]# #第2个里程碑-以m或n开头的行
[root@oldboyedu42-lnb 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

转载于:https://blog.51cto.com/13859480/2152895

正则表达式 特殊符号系列 通配符系列相关推荐

  1. Python——正则表达式特殊符号及用法

    由于正则表达式的内容比较多,所以单独写成一系列文章,主要内容是根据小甲鱼所讲的内容综合一下正则表达式的笔记. 贴上小甲鱼的<Python3 如何优雅地使用正则表达式>系列可观看的博客地址: ...

  2. Python语言学习:解决python版本升级问题集合(python2系列→Python3系列)导致错误的总结集合

    Python语言学习:解决python版本升级问题集合(python2系列→Python3系列)导致错误的总结集合 目录 Python版本升级的原因 Text and binary data in P ...

  3. oracle group by 多类别_python数据关系型图表散点图系列多数据系列

    多数据系列 多数据系列的散点图需要使用不同的填充颜色(fill)和数据点形状(shape)这两个视觉特征来表示数据系列: 绘制多数据系列散点图 多数据系列散点图就是在单数据系列上添加新的数据系列:使用 ...

  4. 常用数据验证正则表达式释义(附:正则表达式常用符号)

    正则表达式,要想完全掌握,几乎是不可能的.而且,正则表达式,也并不是万能的,很多情况,并不能做倒完全的匹配.如果我们仅仅是做网站,在数据验证.简单查询的时候使用,我们只需要掌握几个常用的验证表达式,并 ...

  5. python语言所使用的特殊含义符号_Python3 正则表达式特殊符号及用法

    Python3 正则表达式特殊符号及用法(详细列表) 正则表达式的强大之处在于特殊符号的应用,特殊符号定义了字符集合.子组匹配.模式重 复次数.正是这些特殊符号使得一个正则表达式可以匹配字符串集合而不 ...

  6. Windows无法安装到GPT格式磁盘的根本解决办法 - 初学者系列 - 学习者系列文章...

    上次在MSDN系统QQ群里有朋友问到在安装操作系统的时候有个问题:Windows无法安装到GPT格式磁盘,见图: 我在这里说下,使用网上方法的都是小白,就是说网上那些都是小白.下面介绍如何正确安装操作 ...

  7. FUHLEN/富勒 U79/U79G节能系列/U系列无线2.4G接收器-淘宝网

    FUHLEN/富勒 U79/U79G节能系列/U系列无线2.4G接收器-淘宝网 FUHLEN/富勒 U79/U79G节能系列/U系列无线2.4G接收器-淘宝网 FUHLEN/富勒 U79/U79G节能 ...

  8. NLP之PTM:自然语言处理领域—预训练大模型时代的各种吊炸天大模型算法概述(Word2Vec→ELMO→Attention→Transfo→GPT系列/BERT系列等)、关系梳理、模型对比之详细攻略

    NLP之PTM:自然语言处理领域-预训练大模型时代的各种吊炸天大模型算法概述(Word2Vec→ELMO→Attention→Transformer→GPT系列/BERT系列等).关系梳理.模型对比之 ...

  9. WebRTC系列-Qos系列之发送NACK

    文章目录 1. NACK简述 2. 判断包位置的算法 2. WebRTC中NACK的处理流程 2.1 主要流程函数分析 2.2 是否丢包判断 2.3 乱序包的处理 在之前的文章 WebRTC系列-Qo ...

最新文章

  1. asp按钮跳转页面代码_重磅更新!全新Web编辑页面、编辑规则快速跳转、状态栏变色、富文本再次升级!...
  2. Spring Security——自定义认证错误提示信息及自适应返回格式解决方案
  3. 7.3.1 阻塞IO(blocking IO)
  4. java runtime类高级,java入门 -- RunTime类
  5. bootstrap模态框 遮挡_Bootstrap Modal遮罩弹出层
  6. `find -name`模式匹配多个模式
  7. 在PPAPI插件中创建本地窗口
  8. 常见的 Android 性能指标获取方式:CPU、FPS、Memory、GPU 、I/O、Network
  9. C#与VC相互调用之C#调用VC的DLL
  10. word embedding和contextual embedding
  11. 2018云计算行业现状及2020年云计算发展趋势
  12. 解决:金山词霸界面太小
  13. php 自定义函数转字母大小,PHP自定义函数实现文字到拼音转换功能
  14. oracle的oca证书,Oracle三大认证考试及其含金量解析
  15. 基于动作捕捉的踝关节动力矫形器外骨骼开发
  16. zookeeper(3)—— zk客户端的使用
  17. codeforces 616F Expensive Strings
  18. arcgis栅格数据平滑_ArcGIS教程:基于ArcGIS的栅格图像平滑处理
  19. 图像处理------提高图像边缘锐利度之UNSHARP_MASK算法
  20. xliff:g标签介绍:

热门文章

  1. boost::json::value用法的测试程序
  2. boost::geometry::index::intersects用法的测试程序
  3. boost::geometry::index::detail::union_content用法的测试程序
  4. GDCM:gdcm::Keywords的测试程序
  5. boost::container实现显式实例化列表的测试程序
  6. boost的chrono模块运行时解析的测试程序
  7. ITK:提取矢量图像的分量/通道
  8. VTK:相互作用之PickableOff
  9. C语言十进制数转换为八进制(附完整源码)
  10. C语言字符串相关一级指针内存模型