正则表达式:
对内容进行增删改查:
Linux的文本三剑客:
grep过滤(查找文本内容--正则表达式-一块使用)查
sed改
awk对行进行取列,AWK自带编程,类java
这三个都是根据文件内容
grep命令都是对行来进行处理的
-m 多个匹配值,取第一个。 m后面一定要加数字
-n 显示匹配内容以及显示匹配行号
-o 仅显示匹配到的字符串,不在输出其他内容
-A after后几行,显示匹配到行记忆匹配的后几行,自定义的
-B before 前几行,显示匹配到的行以及他的前几行,自定义
-C 前后个几行,以及上下各几行,方便对日志内容进行过滤
-e 实现逻辑或的关系
-E 使用正则表达式
-f 过滤出两个文件相同的内容(以第一个文件为标的)
-r 递归目录下,所有包含过滤内容的文件以及匹配的内容行,但是不处理软连接
-R 递归目录下,所有包含过滤内容的文件以及匹配的内容,处理软连接
Sort :以行为单位以行对文件内容进行排序,也可以根据不同的数据类型进行排序
Sort 选项 参数
-b 忽略每行前面的空格,进行排序,而不是把空格缩进,有空格也不影响排序
-n 按照数字进行排序
-r 反向排序
-u 去重,相同的数据行只显示一行
-o 输出文件,把排序后的结果,输出到指定的内容文件
多个选项可以放在一起使用
面试题:
怎么样不改变源文件的怕羞顺序,输出到另外一个文件中:
cat -n /etc/passwd | sort -n -o /opt/xxx.txt
快捷去重unip:报告或者忽略文件中连续的重复行,常用于sort命令结合使用
uniq 选项,参数
-c统计连续重复的行次数,合并重复的行
-u显示仅出现一次的行(包括不连续的重复行)
-d 仅显示重复出现的行(必须是连续的重复行)
tr 对字符进行替换,压缩和删除
格式 tr 选项 参数
结合管道符使用 例如:echo 123:| tr 选项
常用选项:
-c 保留字符集1的字符,其他字符用字符集来进行替换,必须要保留,然后替换
-d删除字符集
-s将重复出现的字符串压缩成一个。
第二个用法,替换字符集
-t替换
Cut :对字段进行截取和剪裁
Cut 选项 参数
Cat 文件名 | cut 选项
-d 指定分隔符 截取字段
-f 对字段进行截取
以冒号为分隔符,截取1-3列
Cut -d ‘:’ -f 1,3 /etc/paaswd
以冒号为分割符,截取1和3列
-b以字节为单位截取
-c以字符为单位截取
-complement排除所指定字段
--output-delimiter 更改原内容的分隔符
Cut和AWK有相似之处,都是对行来取列
Cut的默认分隔符是tab建
AWK的默认分隔符就是空格,把多个连续的空格当做一个处理
Cut主要就是切文本,指定分隔符,指定分隔符最好是指向性越明显越好
AWK更好用一些
对文件拆分:split可以把文件拆分成若干个小文件
-l 指定行数拆分 拆分时记得最后价格名称
-b 指定大小进行拆分
创建一个指定大小文件:dd if=/dev/zero of=/opt/123.txt bs=10M count=5
面试题:
现在有一个日志文件----Nginx----Nginx.log----5G大小
你有什么方法提高这个文件的打开速度
答:split拆分
文件合并:paste cat
面试题:合并文件,paste和cat的区别
Paste是左右合并
Cat是上下合并
面试题:
如何统计当前主机的连接状态:
有多少个listen
有多少个estab
排序去重展示
练习题:统计当前主机连接数
正则表达式:匹配文件内容。根据特定的字符和表达式
Linux下:grep seq awk
配置文件也可以支持正则表达式例如Nginx和mysql
通配符和正则表达式的区别:
通配符匹配的是文件名:
正则表达式就是用来匹配文件内容的:
正则表达式:
点. :匹配任意单个字符,也可以是一个汉字
转义符:\ 转义符配上点,那点就是点了,没有其他意思了
():分组的意思 那只猫表示括号的意思呢 \(\)
[]:匹配任意范围内的单个字符
使用正则表达式一定要把匹配内容引起来
取反[^a-z]
[[:blank:]]匹配空格或者制表符
[:space:] 空格tab键 换行符 回车 各种类型的空白
[:cntrl:] 退格删除
小补充:
元字符:
. 匹配任意单个字符,可以是一个汉字
() 使用转义符,只表示\(\)
[] 匹配指定范围内的任意单个字符,示例:[dn] [0-9] [] [a-zA-Z] [:alpha:]
[^] 匹配指定范围外的任意单个字符,示例:[^dn] [^a.z]
[:alnum:] 字母和数字 [0-9] [a-z] [0-9] [a-z]
[:alpha:] 代表任何英文大小写字符,亦即 [A-Z], [a-z]
[:lower:] 小写字母,示例:[[:lower:]],相当于[a-z]
[:upper:] 大写字母 [A-Z]
[[:blank:]] 空白字符(空格和制表符)
[:space:] 包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白,比[:blank:]包含的范围广
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
[:digit:] 十进制数字
[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
\w #匹配单词构成部分,等价于[_[:alnum:]]
\W #匹配非单词构成部分,等价于[^_[:alnum:]]
\S #匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\s #匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
练习: