1、tr
用来对标准输出的字符进行替换压缩和删除
tr 选项 参数
-c:保留字符集1的字符,其他的字符用字符集2来进行替换
-d:删除字符集中的一部分
-s:把字符集1的部分替换成字符集2的部分,也可以把连续重复出现的字符压缩成一个字符
2、cut
快速裁剪,和awk都可以按行取列
作用:对字段进行截取和裁剪
-d:指定分割符(默认的分割符是tab键)
-f:对字段进行截取,指定输出段的内容
-complement:输出的时候排除指定的字段
-output-delimiter:更改输出内容的分割符
-b:以字节为单位进行截取
-c:以字符为单位进行截取
3、文件的拆分split
把大文件拆分成若干小的文件
-l:按行进行分割
-b:按照大小进行分割
面试题:现在有一个5G的日志文件,能不能快速的打开?
拆分,-l按行分,-b按大小分
这种文件推荐按照大小分
4、文件的合并
cat、paste
面试题:cat合并和paste合并之间的区别?
cat是上下合并,paste是左右合并
面试题:统计当前主机的连接状态
netstat -antp
ss -antp
ss -antp | grep -v '^State' | cut -d " " -f 1 | sort | uniq -c
5、正则表达式
5.1定义
由一类特殊字符以及文本字符所编写的一个模式,模式用来匹配文件当中的内容(字符)
5.2作用
可以校验输入的内容是否满足规定、格式、长度等要求
主要用来匹配文本内容,命令的结果
通配符只能用于匹配文件名和目录名,不能匹配文件内容和命令结果
5.3正则表达式分类
基本正则表达式
扩展正则表达式
6、基本正则表达式
6.1元字符(字符匹配)
. 任意单个字符,也可以是一个汉字
\ 转义符,恢复其本意
\]匹配指定范围内的任意单个字符或者数字 \[\^\] 取反,除了范围之外的单个字符 "\^#" 以#号为开头的字符 \^$ 空行 #### 6.2表示次数,匹配字符出现的次数 \*匹配前面的字符任意次,0次也可以。贪婪模式,尽可能的匹配 .\*匹配前面的任意字符,至少要有一次,匹配所有 \\? 匹配前面的字符0次或者1次,可有可无 \\ +匹配前面的字符至少要出现一次\>=1 \\ {n \\}匹配前面的字符=n次,可以小于n但是不能大于n,而且前面的字符必须要是连续出现 \\ {m,n \\}匹配前面的字符至少m次,至多n次,必须是连续出现,超出的不在匹配范围 \\ {,n \\}匹配前面的字符最多n次,不能少于n次,但是可以超过n次 \\ {n, \\}匹配前面的字符最少n次 #### 6.3位置锚定 \^:以什么为开头,行首锚定 $:以什么为结尾,行尾锚定 "\^root$" 这一行只能有root \\ \<或者\\b:词首锚定,匹配单词的左侧(连续的数字、字母、下划线都算单词内部) \\ \>或者\\b:词尾锚定,匹配单词的右侧 \\broot\\b:匹配整个单词,空格隔开的也算整个单词 \^root$:整个一行只有这个单词 #### 6.4分组和逻辑关系 分组:() 逻辑关系:\\\| 或者 ### 7、扩展正则表达式 grep -E = egrep \*匹配前面的字符任意次,0次也可以。贪婪模式,尽可能的匹配 .\*匹配前面的任意字符,至少要有一次,匹配所有 ? 匹配前面的字符0次或者1次,可有可无 +匹配前面的字符至少要出现一次\>=1 {n }匹配前面的字符=n次,可以小于n但是不能大于n,而且前面的字符必须要是连续出现 {m,n }匹配前面的字符至少m次,至多n次,必须是连续出现,超出的不在匹配范围 {,n }匹配前面的字符最多n次,不能少于n次,但是可以超过n次 {n, }匹配前面的字符最少n次 分组:() 逻辑关系:\| 或者