sed编辑器
不修改原内容的行级别流编辑器
sed ‘s/baidu /earyant/‘ access.log | head -10
将日志文件中的baidu替换成earyant输出
s表示执行的事文本替换命令sed -n ‘2,6p’ access.log
-n表示只输出指定的行,’2,6p’表示选择的事第二行到第六行
sed ‘/earyant/d’ access.log
d表示执行文本删除命令,将包含earyant的行删除
sed ‘=’ access.log
显示文本行号
sed -e ‘i\head’ access.log | head -10
在行首插入文本
sed -e ‘a\end’ access.log | head -10
在文末追加文本
sed -e ‘/baidu/c\hello’ access.log | head -10
c命令对文本进行替换,查找/baidu/匹配的行,用hello对匹配的行进行替换,与s不同的是,这个替换行,s是替换单词
- sed -n ‘1,5p;1,5=’ access.log
多条命令,分号隔开
awk
- awk ‘{print $1}’ access.log | head -10
打印指定的列
- awk ‘/baidu/{print $5,%6}’ access.log | head -10
筛选指定的行,并且打印出其中一部分列
awk ‘length{$0} > 40 {print $3}’ access.log | head -10
$0 表示当前的行,length($0)获取当前行的长度,print $3 打印出第三列
awk ‘{line = sprintf (“method:%s,response:%s”,$3,$7); print line}’ access.log | head -10
定义line接收sprintf输出,sprintf用户格式化输出第三行的请求式和第七行的响应时间
shell
- 系统load超过2或者磁盘利用率超过85%报警:
1 |
|
- 读取日志文件,对字段切割,插入到sql。
db:
1 | create table access_log( |
shell:
1 |
|