Linux 中 查询文件中某段时间的数据 个人喜欢使用sed

版权声明:转载的话 请标明出处 https://blog.csdn.net/qq_28198181/article/details/82217091

cat
cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。
cat m1 (在屏幕上显示文件ml的内容)
cat m1 m2 (同时显示文件ml和m2的内容)
cat m1 m2 > file (将文件ml和m2合并后放入文件file中)

可以在 后面添加 | grep -a 'xxx' 添加xxx的过滤条件 

但是 如果是要获取一个文件中的一段时间的数据的话,会比较麻烦,比如:

cat xxx | grep -a '过滤条件' |  grep -a '2018-08-30 10:2\|2018-08-30 10:5'   就是查询 10:20到10:59:59的所有数据

但是如果要 查询跨小时的 就比较麻烦

例如:

cat xxxx | grep -a '2018-08-20 12:\|2018-08-20 13:\|2018-08-20 14:\|2018-08-20 15:\|2018-08-20 16:\|2018-08-20 17:\|2018-08-20 18:\|2018-08-20 19:'

这就是12点到19点的所有数据 相对于sed的命令 就比较麻烦

sed
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。

sed 中对于一段时间查询命令

所有在模板test和check所确定的范围内的行都被打印:

sed -n '/time1/,/time2/p' file  这个可以跨小时 但是注意 是含头不含尾的 比如time2=20:00 只会打印到19:59:59

比如:

sed -n '/06:55:00/,/09:35:00/p' xxx.log | grep -a '过滤条件'

相对于cat 就比较方便了

猜你喜欢

转载自blog.csdn.net/qq_28198181/article/details/82217091