1.正则表达式
1.[]方括号表示括号内的文字做并运算,同时支持描述符“-”。比如[abcd]等去[a-d]
2.如果方括号里包含-元素,要将其放在首部
3.方括号中^字符开头,表示字符集中配出方括号中的所有字符之后,所剩字符的并运算。
4.X?表示X与空字符串之间可选
5.X+表示X至少重复一次.
2.搜索文本的grep
grep的工作方式会把标准输入的内容进行处理,之后在标准输出中输出.
grep支持的正则表达式
元字符 | 匹配对象 |
---|---|
^ | 表示句首.如^abc表示以abc开始的句子 |
$ | 表示句尾。如abc$表示以abc结尾的句子 |
* | 表示前一个字元集出现次数为0或多次.比如ab*c 表示在ab和c之间可能存在多个字符 |
[] | 匹配一个制定范围内的字符,如1表示以数字开始的行 |
(…) | 匹配一个不在制定范围内的字符 |
< | 表示词首如<abc表示以abc开头的词 |
> | 表示词尾如<abc表示以abc结尾的词 |
3.排序和去重
cut -d‘ ’ fl ~/.bash_history | sort -d| uniq -c| sort -nr|head
解释:
cut -d’ ’ -fl ~/.bash_history
从~/.bash_history 以空格为基础进行截取,读取出第一列(-fl,如果读取多列,可以使用-fl 3等)
uniq -c
对文本去重,并统计次数(-c)。uniq的去重只能针对连续的多行去重,只剩下唯一的一条,不排序的话,不连续的无法去重。
sort -nr
按数字排序(-n)并按将序(-r)排列,没有-r,默认是升序排列
head
输出文件前面部分的内容,默认显示前十行
4.文件对比
文件对比使用diff命令。diff提供了正常,上下文,和合并三种格式报告.
例如 diff -url file01 oldfile01>file01.patch
会把文件整合.
文件中的-表示第一个文件,+表示第二个文件
后面的数字一次表示第n行开始,连续的多少行
0-9 ↩︎