首页 > 系统相关 >Linux时间戳转换成易读格式的方法

Linux时间戳转换成易读格式的方法

时间:2023-01-05 21:00:11浏览次数:46  
标签:易读 转换成 log do -% sed awk zhaobsh Linux

背景

最近一直在学习Redis相关的知识.
其中遇到了一个redis monitor的命令
但是这里有一个问题是: 
原生命令查询出来的时间是Unix时间戳格式的.
不太好发现查看与进行对照.
所以今天中午就进行了简单的学习,希望能够最简单的方式进行转换.

思路

认为awk命令一个就够了.
但是自己awk学医不精通.
所以尝试进行三步法进行处理
第一步取出时间戳的数值, 第二步进行转换, 第三步进行原生替换.
这样可能会有很大的性能损耗.

具体命令

for i in `cat zhaobsh2.log |awk '{print $1}'` ; 
do   y=$(date +"%Y-%m-%d %H:%M %S.%N" -d@$i) ;  sed -i "s/${i}/${y}/g" zhaobsh2.log ; 
done

验证一下性能

发现如果是百万级, 基本上不具备可操作性.
需要进行优化.

第二次处理

time( export IFS=$'\n' ; export j=1 ; for i in `awk '{cmd="date -d@"$1; cmd |getline; print}' zhaobsh.log.test2  `  ;
 do  echo -n $i &&  sed -n ${j}p zhaobsh.log.test2  &&  j=`expr $j + 1`  ; 
 done > zhaobsh.log.test22)

time (for i in `cat zhaobsh.log.test |awk '{print $1}'` ; 
do   y=$(date +"%Y-%m-%d %H:%M %S.%N" -d@$i) ;  sed -i "s/${i}/${y}/g" zhaobsh.log.test ; 
done)

好像 五百条数据库都是 8秒钟左右
百万级的 好像都没有准确进行处理..
文本处理的确比较麻烦. 

标签:易读,转换成,log,do,-%,sed,awk,zhaobsh,Linux
From: https://www.cnblogs.com/jinanxiaolaohu/p/17028850.html

相关文章