一、系统符号
1、系统基本符号
- 系统符号: # ~ $ . …
- 通配符号:* {}
基本作用:简化操作,进行匹配
2、系统特殊符号
-
$: 取变量内容,配合awk去列、普通用户提示符
-
!: 取反,强制
-
|: 将前一个命令结果交由后一个命令执行
-
xargs: 将多行内容显示在一行
-
示例操作:
- 查询多个文件,并查看其中内容:find / -maxdepth 2 -type f -name “abc*” | xargs cat
- 将查询到的多个文件的详细信息显示出来:find / -name “abc*.txt” | xargs ls -l
- 删除/root下的三个abc文件: find / -maxdepth 2 -type f -name “abc*” | xargs rm -rf
- 查找指定的.txt文件并复制到/tmp目录:
cp -rf find /test -type f -name "*.txt" /tmp
- 查找指定的.txt文件并复制到/tmp目录:
-
引号使用:
- 单引号:输出信息,写什么显示什么
- 双引号:类似于单引号,但对特殊信息会做解析
- 反引号:将引号内的命令先执行,然后把执行结果交给引号外的命令处理。
-
重定向符号:
> :输入重定向 >> :追加输入重定向
-
路劲信息:
- ./:当前目录
- …/:上级目录
- /:更目录
- ~:用户根目录
-
逻辑符号:
- &&:逻辑与
- ||:逻辑或
3、系统通配符
- *:模糊匹配所有内容
- {}:生成序列信息
- {1…9}
- {a…z}
- {001…100}
- {1…10…2}:生成奇数序列
- {0…10…2}:生成偶数序列
二、操作系统正则符号说明
1、基础正则符号
- 尖角符号^:以什么开头(eg:cat /etc/passwd |grep “^root” )
- 美元符号 : 以什么结尾( e g : c a t / e t c / p a s s w d ∣ g r e p " a b c :以什么结尾(eg:cat /etc/passwd |grep "abc :以什么结尾(eg:cat/etc/passwd∣grep"abc")
- 点符号.: 匹配任意一个字符,且只有一个字符
- 星符号*: 匹配前一个字符连续出现了0次或者多次
- 点和星结合 .*: 匹配任意所有信息
- 转义符号:
- 将有特殊意义符号,转义成普通信息进行识别(eg: grep “.$” ~/test.txt)
- 将没有意义的信息转义为有特殊意义的信息
- \t:制表符
- \b:换行符
- eg: echo -e “编号\t姓名\t性别\n01\t张三\t男\n02\t李四\t女”
- 括号符号[ ]:
- 匹配包含a、b、c的行:grep “[abc]” test.txt
- 匹配多个字符信息:grep “h[a-z]p” ~/test.txt
- 将以I开头和m开头的行都找出来:grep “1” test.txt
- 括号和尖号组合 [^]:
- 排除符号,除了a、b、c外,匹配包含其他字符的行:
grep "[^abc]" test.txt
- 排除符号,除了a、b、c外,匹配包含其他字符的行:
2、拓展正则符号
- 加号+: 匹配前一个字符连续出现了1次或者多次
- 竖线符号|:或者符号,用于匹配多个信息
- 括号符号:
- ():指定信息进行整体匹配,或者进行后项引用前项使用: sed命令替换功能
- {}:可以指定字符连续匹配的次数
- 第一种情况: x{n,m} 表示前一个字符至少连续出现n次,最多出现m次
- 第二种情况: x{n} 表示前一个字符正好连续出现了n次
- 第三种情况: x{n,} 表示前一个字符至少连续出现n次,最多出现多少次不限
- 第四种情况: x{,m} 表示前一个字符至少连续出现0次,最多出现m次
- 问号符?: 定义匹配前一个字符出现0或者1次
三、测试实例
实例1:通过ifconfig ens33查看ens33网卡的IP地址
- 方法一、
ifconfig ens32 | egrep "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" -o | head -1
egrep "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"
:匹配xxx.xxx.xxx.xxx格式的字符串- -o:只显示匹配到的信息,并列出
- head -1:显示第一行信息
- 方法二:
ifconfig ens33 |egrep "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"| awk '{print $2}'
egrep "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"
:匹配xxx.xxx.xxx.xxx格式的字符串awk '{print $2}'
:按照空格分割,输出第二部分内容
Im ↩︎