linux之通配符

特殊符号

#    注释或者命令提示符中的 用户提示符 表示管理员
$    获取变量内容 echo $PATH
!     强制执行 wq! q!
|     命令的拼接,管道符
;     命令的分隔符,不管前面的命令是否执行成功,继续向后执行
&&	  前面的命令必须执行成功,才会往后执行 
||	  前面的命令执行失败,才会往后执行
>     标准输出正确重定向 1> 
2>    标准错误输出重定向
``    执行命令
$()   执行命令
""    双引号和不加引号可以解析变量内容
''    所见即所得 不能解析变量
~     家目录 
.     当前的目录
..    上一级目录
-     上一次所在的目录  su切换用户 更新环境变量
*     表示所有
{}    生成序列
[]    查找序列
?     表示任意单个字符
2>>&1  无论对错都追加写入目标文件

通配符

作用: 用来过滤文件中的字符串
1.^ 过滤以什么开头的行
grep '^m' file  

2.$ 过滤以什么结尾的行
grep 'm$' file

3.过滤空行
grep '^$' file

4. 点. 表示任意单个字符
grep '.' file

5. 星 * 前一个字符出现0次及0次以上
grep '8*' file

6. .* 表示文件中所有内容
grep '.*' file

7.[] 表示任意单个字符串 还原带含义的特殊符号 . ^ $ 支持序列
grep '[abc]' file  # 不是过滤abc字符的行 过滤或a 或b 或c的行
grep '[a-z]' file
grep '[0-9]' file
grep '[a-Z0-9.^$-]'

# 还原特殊符号
grep '[\.$-]' file

8.[^a] 表示对a进行取反

9.过滤空行和注释
[root@m01 ~]# grep -Ev '^$|^#' /etc/ssh/sshd_config
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

10.扩展正则

# +表示前面的字符出现1次及1次以上
egrep '8+' file

# {} 出现至少n次最多m次
egrep '[0-9]{18}' file  # 连续的18个数字
egrep '8{2,3}'file  # 至少2次,最多3次 优先匹配后面的数字

# | 或者
egrep '^$|^#' file # 匹配文件的空行和以井号开头的 经常用来过滤文件生效的行需要-v取反
egrep 'qq|test' file # 查找出包含qq的行或者包含test的行

# (a|b|c) 当做一个整体
grep -E '(a|b|c)' /etc/passwd

笔试题: 统计每个字母出现的次数

[root@m01 ~]# grep '.' /etc/passwd -o |sort |uniq -c |sort -rn -k1 |head
    138 :
     86 n
     86 /
     78 o
     66 s
     58 i
     41 b
     39 t
     38 a
     36 l

笔试题: 统计每个单词出现的次数

[root@m01 ~]# grep -E '[a-zA-Z]+' /etc/passwd -o |sort |uniq -c |sort -rn |head -n10
     24 sbin
     23 x
     18 nologin
      7 var
      6 bin
      4 root
      3 sync
      3 spool
      3 shutdown
      3 mail

匹配身份证号

[root@m01 ~]# grep -E '[0-9]{17}[0-9xX]' id.txt 
孔 150000123874591242
夏 222113859123487192
赵 37142518322922103X
夏 222113859123487192
赵 37142518322922103X
夏 222113859123487192
赵 37142518322922103X
夏 222113859123487192
赵 37142518322922103X
赵 37142518322922103X
夏 222113859123487192
赵 37142518322922103X

正则重点

1.^  
2.$
3.^$
4.[] 任意单个字符数字序列 对特殊符号还原本意
5.+ awk中使用比较多
6.| 或者使用比较多

7.{} 使用相对较少
8.()sed后向引用
posted @ 2024-11-15 15:40  被时光移动的城市  阅读(38)  评论(0编辑  收藏  举报