Linux中符号总结

常用符号
~   登陆用户当前的家目录
.   当前目录
..   当前目录的上一级目录
cd -   返回上一次的目录
;   命令分隔符
#   表示注释
?   通配符中表示任意一个字符
*   通配符中表示任意字符
$   获取变量内容
` `和$( )   都是取命令运行后的结果
&&   表示且的关系
||   表示或的关系
!   表示非的关系(find与awk中表示取反,linux命令行表示历史记录)
[ ]   通配符中表示表示一个范围
{ }   通配符中表示产生一个序列
>   输出重定向(覆盖)
>>   追加重定向
<   输入重定向
<<   追加输入重定向
2>   错误输入

正则表达式符号
^a   以a字符开头
a$   以a字符结尾
^$   匹配空行
   转义字符
.   点表示匹配单个字符
a*   重复a零次或多次
.*   匹配所有字符
^.*   以任意字符开头
.*$   以任意字符结尾
[abc]   匹配a或b或c字符
[^abc]   不匹配abc字符
[0-9]   匹配数字
[a-zA-Z]   匹配字母
a{n,m}   重复a字符n到m次
a{n}   重复a字符n次
a{n,}   重复a字符至少n次
|   扩展正则表达式,表示或
+   扩展正则表达式,表示重复一次或多次
扩展正则表达式用egrep或grep -E

[ ]与{ }区别
[root@test ~]# echo test[0-9]
test[0-9]
[root@test ~]# echo test{0..9}
test0 test1 test2 test3 test4 test5 test6 test7 test8 test9


[ ] 表示一个整体 筐 里面有多种可能 #或@或*正则表达式眼中 就认为 框里面的东西(无论多少种)都是一样的。 都是一个筐,例:
[root@test ~]# echo "###*****@@@@@#####1@@@@######@@@@@@@2**@@@@****"|egrep "[#@*]+"
###*****@@@@@#####1@@@@######@@@@@@@2**@@@@****
[root@test ~]# echo "###*****@@@@@#####1@@@@######@@@@@@@2**@@@@****"|egrep -o "[#@*]+"
###*****@@@@@#####
@@@@######@@@@@@@
**@@@@****
[root@test ~]# echo "###*****@@@@@#####1@@@@######@@@@@@@2**@@@@****"|awk -F "[#@*]+" '{print $2}'
1

正则表达式练习文件
[root@Centos ~]# cat test.txt
I am oldboy teacher!
I trach linux.

I like badminton ball billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.com
My qq number is 49000448.

not 4900000048.
my god , i am not oldbey, but OLDBOY!

[root@web01 ~]# ifconfig eth0|sed -rn 's/^.*ddr:(.*) Bcas.*$/1/gp'   #sed取IP地址
[root@web01 ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2 {print $4}'   #awk取IP地址

原文地址:https://www.cnblogs.com/xwupiaomiao/p/8117053.html