sed#
语法
参数 | 注释说明 |
---|
n | 取消sed默认的输出 |
i | 替换文件内容 |
r | 如果有特殊字符不用转义(正则) |
g | 全局替换 |
d | 删除 |
p | print打印 |
# 为分隔符可以用其他符号替换(最好用$ @ /)替换内容中如果有分隔符,需要将分隔符替换为别的分隔符,如果不换可将内容转义 s 为search g为globla全局替换,不加的话只替换一列
打印
问:已知一个文件内容为 aaa bbb ccc lisi 请打印出不包含lisi的内容
文件原内容
替换功能:
默认不加参数会将文件原内容打印再将符合的内容打印
在指定文件中指定行插入数据
-n取消默认的输出
将符合的内容删除后输出,并不操作文件
删除文件中一部分内容
参数 | 说明 |
---|
c | 统计字节数 |
l | 统计行数 |
m | 统计字符数,不能与c一起用 |
w | 统计字数,一个字被定义为由空白、跳格、或换行字符分割的字符串 |
L | 打印最长行的字符数量 |
–help | 帮助信息 |
–version | 版本信息 |
sort ★★★★#
将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入
参数选项 | 注释说明 |
---|
-b | 忽略每行前面开始出的空格字符; |
-c | 检查文件是否已经按照顺序排序; |
-d | 排序时,处理英文字母、数字及空格字符外,忽略其他的字符; |
-f | 排序时,将小写字母视为大写字母; |
-n | 依照数值的大小排序 |
-r | 以相反的顺序来排序 |
实例:sort将 文件/文本 的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
忽略相同行使用-u选项或者uniq:
sort的-n、-r、-k、-t选项的使用:
uniq#
用于报告或忽略文件中的重复行,一般与sort命令结合使用
参数选项 | 注释说明 |
---|
-c | 在每行前面显示改行重复的次数 |
-d | 仅打印重复出现的行 |
-u | 仅打印不重复的行 |
实例:删除重复行
在文件中找出重复的行:
查找重复次数
cut#
用来显示行中的指定部分,删除文件中指定字段。cut经常用来显示文件的内容
参数选项 | 注释说明 |
---|
-b | 以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 |
-c | 以字符为单位进行分割 |
-f | 与-d一起使用,取第几列 |
-d | 指定分隔符 |
实例
- 以字节取,我们想去who命令的第三个字节
- 取第1、2、3和第23个字节
- 如果取中文的话,-c 与 -b就有差异了,-c取的是字节,而-b取得是8位2进制来计算输出的是乱码或空
grep#
Global search Regular Expression(RE) and Print out the line,全面搜索正则表达式并把行打印出来;是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
过滤,将想要的和不想要的去除
参数 | 说明 |
---|
==-E== | 同egrep同时过滤多个字符串,使grep可以使用正则表达式 |
-v | 翻转查找,查找除了匹配到结果之外的信息 |
-B Num | 除了显示匹配的一行之外,并显示该行之前的num行 |
-A Num | 除了显示匹配的一行之外,并显示改行之后的num行 |
-C Num | 除了显示匹配的一行之外,并显示改行之前后各num行 |
-o | 输出匹配字符,而不是默认的整行输出 |
-i | 不区分大小写 |
-n | 讲匹配出的结果在文件所在的行号打印 |
-c | 打印匹配到的行数 |
-H | 在匹配到符合行之前打印文件名 |
–color=auto | 给匹配倒的字符串加颜色(不是整行。关键字高亮显示) |
实例
- 显示/etc/services 下3306和1521 端口信息
- 过滤出文件内指定字符串
- 排除指定字符
- 一个文件有100行,只看20~30行
- 列出文件名
日志查询中常用命令#
打印一段时间的日志
输出日志文件中的某个日期中的ERROR的行
统计http相应状态码
使用awk
列出404的接口
检查404请求来自哪里
查询x 分钟内访问最多的前 10 个IP
day hour minutes
查询请求URL数量排行
统计所有的IP请求量
统计某一时间段的IP请求量
统计IP请求数量大于一个值的排行
列出请求时间超过3s的接口
获取每分钟的请求数量并输出成csv文件
查看搜索引擎爬虫