码迷,mamicode.com
首页 > 系统相关 > 详细

Linux/Centos 正则表达式

时间:2019-06-05 11:25:20      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:test   查找   占用   ssi   包括   inux   单词   取反   pre   

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

云字符就是指那些在正则表达式中具有特殊意义的专用字符
技术图片
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 中的字符!

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/? \;
如果对此有兴趣或者有问题需要问,请添加:15149813470,免费解答。

Linux/Centos 正则表达式

标签:test   查找   占用   ssi   包括   inux   单词   取反   pre   

原文地址:https://blog.51cto.com/11233498/2405129

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!