您的位置:首页 > 运维架构 > Linux

Linux通配符知识精简

2017-11-23 20:47 183 查看
Linux通配符知识精简
1.1 通配符知识
特殊符号:

输出重定向:把前面输出的东西输入到后面的文件中,会清除原文件的内容
> 追加输出重定向:把前面输出的东西输入到后面的文件中,不会清除原文件的内容
< 输入重定向:输入重定向用于改变命令的输入,后面指定输入内容,前面跟文件名
<< 追加输入重定向:后跟字符串,用来表示”输入结束”,也可用ctrl+d来结束输入

代表所有(0个或多个)字符 [b]
? 代表任意一个字符
; 分号连续不同的命令分割符
[/b]
# 配置文件注释 [b]
| 管道
~ 代表当前家目录
[/b]

用户上一次的所在目录 [b]
$ 变量前需要加符号
/ 路径分隔符也是根的意思
‘’ 单引号,不具有变量置换功能,输出时所见所得
[/b]
“” 双引号,具有变量置换功能,解析变量后输出 [b]
• 反引号两个••中间为命令,会先执行,等价$()
[/b]
{} 中间为命令区块或内容序号,类似seq,一般配合echo等命令使用,find里面的{}意思是前面命令的结果
! 感叹号,1:!+字母表示调出最近一次的以此字母开头的命令 2:!!表示使用最近一次的操作 3:!+数字 表示调出历史的第几条命令 4:取反的意思
&& and 并且的意思,当前一个指令执行成功时,执行下一个指令
|| or 或者的意思,当前一个指令执行失败时,执行下一个指令
\ 转义字符,让有意义的字符,脱掉它代表的意义 [b]
.. 2个点代表上一级目录
[/b]
. 一个点代表当前目录 *****

1.2 正则表达式原理
1、什么叫正则表达式
正则表示式就是为处理大量的字符串而定义的一套规则和方法
2、为什么要学会正则表达式
可以从大量的字符串内容里面查找符合自己需要的字符串。

1.3 基础正则字符说明
1、^word 匹配word开头的内容。 vi/vim编辑器里^代表一行的开头
例子:
[root@KING data]# grep "^m" oldboy.log
my blog is http://oldboy.blog.51cto.com
my qq num is 49000448.
my god ,i am not oldboy,but OLDBOY!
2、word$ 匹配word结尾的内容。 vi/vim编辑器里^代表一行的结尾
例子:
[root@KING data]# grep "m$" oldboy.log
my blog is http://oldboy.blog.51cto.com
3、^$ 表示空行
例子:
[root@KING data]# grep -n "^$" oldboy.log
3:
8:
4) . 点 代表且只能代表任意一个字符。
例子:
[root@KING data]# grep "." oldboy.log
I am oldboy teacher!
I teach linux
I like badminton ball ,billiard ball and chnese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldboy,but OLDBOY!
5) \ 转义字符,例.就只代表点本身,让有着特殊身份的字符脱掉马甲,还原原型。
例子:
[root@KING data]# grep ".$" oldboy.log
my qq num is 49000448.
not 4900000448.

6) 重复0个或多个前面的字符,任意字符
例子:
[root@KING data]# grep "00" oldboy.log
my qq num is 49000448.
not 4900000448.
7) . 匹配所有字符。延伸^.以任意多个字符开头,.$以任意字符结尾
例子:
[root@KING data]# grep "^." oldboy.log
I am oldboy teacher!
I teach linux

I like badminton ball ,billiard ball and chnese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.

not 4900000448.
my god ,i am not oldboy,but OLDBOY!

8)[abc] 匹配字符集合内的任意一个字符[a-z A-Z],[0-9]
例子:
[root@KING data]# grep "[ab]" oldboy.log
I am oldboy teacher!
I teach linux
I like badminton ball ,billiard ball and chnese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my god ,i am not oldboy,but OLDBOY!

9)[^abc] 匹配不包含^后的任意一个字符的内容
例子:
[root@KING data]# grep "[^ab]" oldboy.log
I am oldboy teacher!
I teach linux
I like badminton ball ,billiard ball and chnese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldboy,but OLDBOY

10) a{n,m} 重复n到m次,前一个重复的字符。
[root@KING data]# grep "0{2,3}" oldboy.log
my qq num is 49000448.
not 4900000448.

a{n,} 重复至少n次,前一个重复的字符。
[root@KING data]# grep "0{2}" oldboy.log
my qq num is 49000448.
not 4900000448.

a{n} 重复n次,前一个重复的字符。
[root@KING data]# grep "0{3}" oldboy.log
my qq num is 49000448.
not 4900000448.

a{,m} centOS5不能使用,centOS6可以,重复m次
[root@KING data]# grep "0{,3}" oldboy.log
I am oldboy teacher!
I teach linux

I like badminton ball ,billiard ball and chnese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.

not 4900000448.

11) + 表示重复“一个或一个以上”前面的字符
12) ? 表示重复“0个或一个”前面的字符
13) | 表示同时过滤多个字符串
14) () 分组过滤,后向引用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息