通配符
通配符 |
含义 |
* | 匹配任意长度的字符 |
? | 匹配任意单个字符 |
[ ] | 匹配指定范围内中任意单个字符 |
[^] | 匹配除括号内的范围的单个字符 |
[a-z], [A-Z], [0-9], [a-z0-9]
[[:upper:]]:所有大写字母
[[:lower:]]:所有小写字母
[[:alpha:]]:所有字母
[[:digit:]]:所有数字
[[:alnum:]]:所有的字母和数字
[[:space:]]:所有空白字符
[[:punct:]]:所有标点符号
grep
语法
grep [选项] 过滤条件 文件名
选项:
-n------------显示行号
-v-------------取反,意思是匹配除过匹配内容之外的内容
-i--------------忽略大小写
-E-------------开启扩展正则
-o-------------只显示匹配到的内容
举例
1.显示/etc/passwd文件下的两位数或三位数
[root@group7 home]# grep -E '\<[0-9]{2,3}\>' /etc/passwd
2.找出/etc/passwd下,以P或p开头的内容
写法一:
[root@group7 home]# grep -i -E '^(P|p)' /etc/passwd
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
写法二:
[root@group7 home]# grep -i '^[P|p]' /etc/passwd
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
3.找出ifconfig命令的ip地址
[root@group7 home]# ifconfig ens33 | grep 'inet .* netmask' |grep -o '\([0-9]\{1,3\}.\)\{3\}.[0-9]\{1,3\}'
4.echo 输出一条绝对路径,用grep找出其绝对路径
[root@group7 home]# echo /var/log/dmesg | grep -E -o '[^/].*/?$'
var/log/dmesg
sed
语法
sed [选项] 地址定界 编辑的内容 文件名
选项:
-n-----------不输出模式空间的内容到屏幕,常与-p一起使用
-e------------多次编辑
-i-------------将编辑的内容修改到文件
-r-------------支持扩展正则
内置命令
用于对文件进行操作,如增删改查