首页 > 系统相关 >Linux下日志文本筛选命令

Linux下日志文本筛选命令

时间:2023-03-08 15:55:58浏览次数:46  
标签:log sql hadoop sed Linux 日志 文本

1.从全量日志中截断部分日志

 
#1.截取末尾10000行
tail -1000 /data/logs/hadoop/hadoop-zkfc.log > cut1w.log
#2.按照时间范围截取日志
sed -n '/2020-08-09 01:59/,/2020-08-09 11:14:24/p' hadoop.log > cut10h.log
#3.搜索关键字截取日志
tail -10000 /data/logs/hadoop/hadoop-zkfc.log | grep SERVICE_NOT_RESPONDING > cutservice.log
#4.正则匹配截取超过5000ms的rpc日志
cat hadoop-zkfc.log* | grep 'took 5[0-9][0-9][0-9] milliseconds' > nnSlowRpc5s.log
#5.正则匹配多个字符串
grep -E "varchar|Slow RPC" tempsql.sql >nnSlowRpc5s.log
#6.指定打印3-6行
 sed -n '3,10p' hadoop-zkfc.log //打印3~10行

2.sed列式选择筛选日志

如下csv文件内容:
"1234","jd_newmember","awktest-jDGoWzFjnfhryGX5AepcE","0.9999"
"1234","jd_newmember","awktest-jD5koAx9Jl8R-4SexpcrM","0.9999"
"1234","jd_newmember","awktest-Du5bjYaSN6TrxOIgfpw0","0.9999"
"1234","jd_newmember","awktest-jDoV83iydyKjTtPNgaCYM","0.9999"
"1234","jd_newmember","awktest-jDlN4vlz-mOzfDlr4pae4","0.9999"
需要选择出第三列,常规方法可以使用xls,选择第三列,然后批量替换掉双引号,用awk可以一次性完成。对于规律的用逗号分隔的可以用xls筛选列,当分隔符不规律时awk的强大就体现出来了,可以FS指定任意的分隔符。

#FS指分隔符 "," , $3是打印按照分隔符\",\"的第三列
awk 'BEGIN {FS="\",\""} {print $3}' test_JDnewmember.csv > jd_filter.csv

3.more、less日志翻页搜索

 在简单的翻看Linux上的日志时也可以用more、less,翻页是Ctrl+f,前一页是Ctrl+b,搜索用斜杠/,跳转到下一个是n,基本上指令与vim的一致。
more hadoop.log

4.替换内容

#1.替换行尾1个以上的空格
[ ^t]+$
#0.匹配1个或者多个空格
[ ^]+
#1.替换行尾1个以上的空格
[ ^]+$
#2.行首多个空格
^[ ^]+
#3.替换换行符和回车符,可以使用notepad++的“扩展”,常见的Windows换行是由回车符合换行符一起组成 \r\n,Linux默认是\n,Mac默认是\r。
\r\n
#4.匹配包含字符串“MemberLatestSmsTime”的整行。
^.*MemberLatestSmsTime.*$
#匹配连续数字+多个字符到行尾,'[0-9]+':多个连续数字,'.*':多个字符,'$':行尾。“eventHdfsBolt-30-36-1572491424981.txt 8144 bytes, 1 block(s),”
[0-9]+ bytes.*$
#当文件比较大,只能在Linux上面处理时可以用sed来批量替换
sed 's/long/field/g' select* > selectAll.xml //替换字符long为field 
sed 's/tmp/UPDATE tasks/g' temp3.sql > temp4.sql //替换字符tmp为目标字符  
sed 's/^/Head/g' temp3.sql > temp5.sql //添加到行首  
sed 's/$/&TAIL/g' test.file //添加到行尾  
sed 's/`//1' temp08-final.sql > temp09-update.sql #替换第一个匹配的字符  
awk 'BEGIN{OFS=" "}{print $1,$2,$3,$4,$4 }' temp05.sql //指定输出域符号OFS为空格

 

  参考:

Linux下日志文本筛选技巧-阿里云开发者社区 (aliyun.com)

 ​Linux 打印文本部分行内容(前几行,指定行,中间几行,跨行,奇偶行,后几行,最后一行,匹配行) - 腾讯云开发者社区-腾讯云 (tencent.com)

 

 

 

标签:log,sql,hadoop,sed,Linux,日志,文本
From: https://www.cnblogs.com/zjfjava/p/17192277.html

相关文章

  • Linux register cache
    Cache在regmap子系统中的概念  regmap中的cache并不是通常意义上的cache。 我认为一般谈到的cache是介于内存与CPU之间的那块存储设备(指硬件)。 regmap中的cache......
  • Linux & 标准C语言学习 <DAY9_1>
    //补08_2函数  2、函数传参:    1.函数中定义的变量属于该函数,出了该函数就不能再被别的函数直接使用    2.实参与形参之间是以赋值的方式进行......
  • 5、Redis慢日志和key有效期
    一、Redis的慢日志问题:如果有人反馈redis慢,如何进行排查?系统资源情况查看慢日志情况1.查看慢日志的默认配置>CONFIGGETslow*#查看慢日志的配......
  • Linux 文件夹结构
    1文件夹结构图  2文件夹用途根目录:/(计算机)/bin:bin是Binaries(二进制文件)的缩写,这个目录存放着最经常使用的命令。/boot:这里存放的是启动Linux时使......
  • linux命令杂记
    chmod777lixiangj修改目录为共享权限cd.. 跳转上一级目录cd- 跳转上一次跳转的目录ll 查看目录下所有文件ctrl+L 清除屏幕内容|head-10 只看结果中的前10条内容|so......
  • linux检测程序运行时间和内存峰值 Python脚本
    #!/usr/bin/envpython3#-*-encoding:utf-8-*-importsubprocessasspimportsysimporttimedefget_mem(pid):c=sp.Popen(['ps','-aux'],stdout=sp......
  • (总结三)Linux指令学习——逻辑卷管理
    文章目录​​1.LVM概述​​​​2.LVM的管理命令​​​​3.使用命令行工具实现LVM存储​​​​4.扩展逻辑卷和ext4文件系统​​​​5.减少逻辑卷和文件系统​​​​6.扩大和......
  • buildroot 制作linux文件系统,并添加telnet 、ssh
    //makemenuconfigbuildroot中选择如下软件包(主要是net-toolsiw工具包)Targetoptions--->TargetArchitecture(ARM(littleendian))--->......
  • 稳撑30+PB数据,携程10年日志系统治理演进之路
    本文将从以下五部分切入,讲述日志系统的演进之路:携程日志的背景和现状、如何搭建一套日志系统、从ElasticSearch到Clickhouse存储演进、日志3.0重构及未来计划。 ......
  • 稳撑30+PB数据,携程10年日志系统治理演进之路
    本文将从以下五部分切入,讲述日志系统的演进之路:携程日志的背景和现状、如何搭建一套日志系统、从ElasticSearch到Clickhouse存储演进、日志3.0重构及未来计划。 ......