通配符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
一般用来匹配文件名的。
匹配文件名:
*:代表任意字符
?:代表任意单个字符
[ ]:匹配指定范围内的任意单个字符
其他通配符:
;:两个命令之间的分隔符
#:在配置文件里,注释效果
|:管道
$:变量前需要加的符号
/:路径分隔符,也是根
>或1>:输出重定向,覆盖原有数据
>>:追加输出重定向,追加在文件内容的尾部
<:输入重定向(xargs,tr)
<<:追加输入重定向(cat)
' ':单引号,不具备变量置换功能,引号内所见即所得
" ":双引号,具备变量置换功能,解析变量后输出,不加引号相当于双引号
` `:反引号,两个``中间为命令,会先执行,等价$()
{ }:中间为命令去块组合或内容系列
! :逻辑运算中的“非”(not)
&&:and并且,当前一个指令执行成功时,执行后一个指令
||:or或者,当前一个指令执行失败时,执行后一个指令
..:代表上级目录
. :代表当前目录
~:当前用户的家目录
-:上一次的所在目录

正则表达式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 用于处理大量字符串而定义,grep、sed、awk都支持正则表达式。
基础正则:
字符匹配:
.:任意单个字符
*:任意长度/次数的字符
[]:指定范围内的任意单个字符
[^]: 指定范围外的任意单个字符
元字符:
[[:upper:]]:任意大写字母
[[:lower:]]:任意小写字母
[[:digit:]]:任意一个数字
[[:alpha:]]:任意大小写字母
[[:punct:]]:标点符号
[[:space:]]:一个空格
[[:alnum:]]:任意一个字母或数字
行锚定:
^:行首
$:行尾
^$:空行
^[[:space:]]$:空白行
扩展正则:
次数匹配:
|:扩展正则,用于多个字符匹配
\+:匹配前面的字符1-任意次
\?:匹配前面的字符0-1次
\{n,m\}:匹配前面的字符最少n次,最多m次
\{,m\}:0-m次
\{n,\}:最少n次
\{n\}:匹配n个(次)
边界符:
\<:匹配字符串从此开始
\>:匹配字符串到此结束
\b或\bString\b:匹配字符串
\<PATTERN\>:匹配包含整个单词/字符串的行
分组匹配(sed常用):
\(First\) A \(Second\) \1或者\2
\(xy\(ab\)\) \1或者\2:1是匹配xy 2是匹配ab
[root@mod-200 ~]#echo "I wanna you"|sed -r 's/(.*)/\1 Shit/g'
I wanna you Shit

转义特殊字符(非正则):
\\:匹配\
\s:空格
\n:回车
\^,\$,\.:匹配^ $ .