grep命令:过滤查找文本内容。
-m:匹配几次之后停止。按行匹配。不是字符个数。
-v:取反。
-n显示匹配的行号
-c 仅显示匹配的行数,不显示匹配的内容
-o 仅显示匹配的内容
-q 静默模式
-A 数字:after后几行
-B :匹配到的行,以及前几行
-C :前后各几行
-e :实现多个过滤条件之间的逻辑或关系
-w :匹配整个单词
-E :使用扩展正则表达式
-f :根据模式文件进行匹配,匹配两个文件相同的内容。
文本三剑客:grep主要就是查
sed增和改
awk按行取列
都是针对文本的内容。
-r :递归目录,但是不处理软链接,匹配目录中的文本的内容。
-R :处理软链接
-E :扩展正则
sort :按照行对文件内容进行排序,也可以根据不同的数据类型进行排序
sort 选项 参数
cat 文件 | sort 选项
-f :忽略大小写,默认会把大写字母排在前面
-b :忽略每行前面的空格
-n :按照数字进行排序
-r :反向排序
-u :相同的数据只显示一行
-o :将排序后文件内容转存到指定文件
uniq
按行来进行处理,去重复行(连续出现)。
uniq 选项 参数
-c :统计连续重复出现的行的次数,并且合并重复的行,并展示。
-u :显示仅出现一次的行
-d :显示仅重复出现的行
tr :字符替换压缩 删除
tr 选项 参数
cat 文件 | tr 选项
-c :保留字符集1的字符,其他字符用字符集2进行替换
-d :删除字符集
-s :重复出现的字符串压缩为一个字符串
-t :默认可以不加
cut快速裁剪:
对字段进行截取和裁剪
cut 选项 参数
cat 文件 | cut 选项
-d :指定裁剪的分隔符(默认的分隔符的是tab的空格)
-f :按行取列,根据第几个字段进行截取
-b :以字节为单位进行截取
-c :以字符为单位进行截取
-complement :排除所指定的字段
-output-delimiter :更改输出结果的分隔符
如何对文件进行拆分:
现在有一个日志文件,5G,直接打开速度很慢,有什么办法进行优化呢?
文件进行拆分
split 可以把大文件拆分成若干小文件。
-l 指定行数进行拆分
-b 指定大小进行拆分
paste合并文件:
cat合并文件和paste有什么区别
cat是上下合并
paste是左右合并
统计当前主机的连接状态
ss -nta | grep -v 'State' | cut -d " " -f 1 | sort | uniq -c
统计当前主机的连接数
ss -nt | tr -s " " | cut -d " " -f 4 | uniq -c
都是针对文件的内容进行操作
正则表达式:由一类特殊字符以及文件字符所编写的模式
其中有些字符不表示字符字面的含义,而表示控制或者通配的功能,用来处理文本当中的字符。
由一些特殊字符组成的特定格式的内容,用来匹配文件当中的内容。
linux当中的通配符:通配符用来匹配文件名或者目录名。
*:任意一个或多个字符。
?:匹配任意一个字符
[]:范围匹配
正则表达式:
元字符:
.匹配任意单个字符,也可以是一个汉字。
\转义符。
()分组\ ( \)
[]匹配范围内的单个字符
[[:blank:]]匹配空格和制表符
[^a]表示除了以外,取反
表示次数:
*:表示匹配前面的字符任意次,包括0次,尽可能长的匹配
.*:匹配前面的任意字符任意次,但是不包括0次
\?:匹配前面的字符0次或者1次,可有可无。
\ +:匹配前面出现的字符最少1次,最多无限. >=1
\ {n}\:表示前面的字符只能出现=n次
\ {n,m\ }:表示前面的字符最少n次,最多m次
\ {,n\ }:表示前面的字符最多出现n次。0次也算
\ {n,\ }:表示前面的字符,最少N次。