Linux/Centos 正则表达式

正则表达式,又称正规表示法、常规表示法( Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。正则表达式分为基本正则表达式和扩展正则表达式。

 

云字符就是指那些在正则表达式中具有特殊意义的专用字符

字符含义
^只匹配行首
$只匹配行尾
*匹配0或任意多个单字符,一般结合 . 使用
.匹配单个任意字符
[]字符范围,只匹配该范围内的单个字符
[ ^ ]匹配指定范围外的任意单个字符
\转义符,用于屏蔽元字符
pattern\{n\}精确匹配 pattern 出现次数为 n
pattern\{n,\}匹配 pattern 出现次数至少为 n
pattern\{n,m\}

匹配 pattern 出现次数在 n,m 之间

  • 1、过滤 /etc/passwd 中以s或S开头的行

  • grep "^[sS]" /etc/passwd

  • 2、过滤 /etc/passwd 中以nologin结尾的行

  • grep "nologin$" /etc/passwd

  • 3、过滤 /etc/passwd 中以空格开头的行

  • grep "^ " /etc/passwd

  • 4、过滤 /etc/passwd 中的空行

  • grep "^$" /etc/passwd

  • 5、过滤 /etc/passwd 中以r开头的行,r后面可以跟0个或任意多个o(也就是说这行的第一个字符必须是r,这行还可以有0个或任意个o)

  • grep "^ro*" /etc/passwd

  • 6、过滤 /etc/passwd 中以r开头的行,r后面必须跟1个或1个以上的字符(也就是这行第一个字符必须是r,而且这行必须还有其他字符,空格也算字符)

  • grep "^r." /etc/passwd

  • 7、过滤 /etc/passwd 中r后跟了任意字符,任意字符后跟了 h 的行 (也就是这一行必须得有r和h,而且h必须在r的后面)

  • grep "r.*h" /etc/passwd

  • 8、过滤/etc/passwd 中,包含 root 单词的行,并且root不和其他字符相邻(空格不算)

  • grep "\<root\>" /etc/passwd

  • 9、过滤 /etc/passwd 中 r后跟了o o出现0次或者1此的行

  • grep "ro\?" /etc/passwd

  • 10、过滤 /etc/passwd 中, r后跟了o,o只出现2次的行

  • grep "ro\{2\}" /etc/passwd

  • 11、过滤 /etc/passwd 中, r 后跟了o ,o出现至少1次至多2次的行

  • grep "ro\{1,2\}" /etc/passwd

  • 12、 过滤 /etc/passwd 中,r后跟了o, o 至少出现2次的行

  • grep "ro\{2,\}" /etc/passwd

  • tr

    命令含义
    tr   set1  set2用 set2 的字符替换 set1
    tr -d set1删除 set1 中指定的字符
    tr  -s  set1压缩 set1 中指定的字符
    tr -s  set1  set2用 set2 的字符替换 set1 ,然后压缩 set2 中指定的字符
    tr  -ds  set1  set2

    先删除 set1 的字符,再压缩 set1 中的字符

    eg:  tr  'A-Z'  'a-z'   <  passwd   将passwd中 A-Z 的大写字符全部替换成 a-z 的小写字符,但是并不会改变passwd中的数据

    tr  'A-Z'  'a-z'  < passwd  >  passwd2   将passwd中 A-Z 的大写字符全部替换成 a-z 的小写字符,然后写入到 passwd2 中

    grep : 筛选出文件内容,不能筛选文件夹       grep   关键字   /etc/passwd

  •          -v  取反
  •          -c   包含关键字的行数的总数
  •          -n  显示关键词在文件中的行数
  •          -i  搜索时忽略被搜索词的大小写
  •          -AX   X为数字,表示搜索时同时显示关键词后X行
  •          -BX    X为数字,表示搜索时同时显示关键词前X行
  • diff   passwd   passwd2     比较两个文件的不同

    这里表示文件passwd和文件passwd2第2行、第4、5行和第7行都不同,并且分别打印出文件1和文件3的第2、4 、5、7 行

  • diff  passwd    passwd2   > diff.path               将 passwd 和 passwd2 的不同写入到 diff.path文件中

    patch  -b  passwd2  diff.path                        用 diff.path文件修改 passwd2 中的不同,最后得到的 passwd2 文件和 passwd 文件一模一样

  • du : 查看目录或文件占用大小

  •          不加参数时,显示当前文件夹下的所有文件夹的磁盘使用情况(包括递归文件夹内的文件夹)
  •          -a  给指定文件夹内的所有文件显示磁盘使用情况( 包括层层递归文件 )
  •          -s  仅显示总计,即当前目录的大小
  •          -h 以人性化方式显示
  •          du -sh    /tmp/test     或者      du -sh  /tmp/test/                      显示test文件夹的占用大小
  • wc : 统计文件中的数据 

  •         -  l 统计行数
  •         - c 统计字节数
  •       - w 统计字数
  •         - m 统计字符数
  • 统计文件夹内文件的个数:         ls -l | grep "^-" | wc -l
    统计文件夹内包括递归文件的个数:   ls -lR | grep "^-" | wc -l
    统计文件夹内文件夹的个数 :     ls -l | grep "^d" | wc -l
    统计文件夹内包括递归文件夹的个数:   ls -lR | grep "^d" | wc -l

    find :查找文件或文件夹

  •         根据文件名查找     find  /tmp  -name  abc     查找/tmp目录下名字叫做abc的文件,它会遍历tmp目录下的所有文件及文件夹
  •         根据文件大小查找   find /tmp   -size    -1M       +号表示大于  -号表示小于
  •        -name   通过文件名查找
  •        -size   通过文件大小查找
  •        -type    通过文件类型查找
  •        -user    通过文件用户查找
  •        -perm  通过权限查找
  •         因为find对管道支持比较弱,所以可以借助exec扩展选项
  •         find /etc  -size  +1M  -exec  ls  -lh  {}  \;               {}代表find查找到的内容
  •         find /etc -size +1M   -exec  cp  {}   /tmp/test/  \;
  •  如果对此有兴趣,请扫下面二维码免费获取更多详情,如果文章对您有帮助,请打赏博主一两毛钱。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值