首页
学习
活动
专区
圈层
工具
发布

Shell 从日志文件中选择时间段内的日志输出到另一个文件

Shell 从日志文件中选择时间段内的日志输出到另一个文件 情况是这样的,某系统的日志全部写在一个日志文件内,所以这个文件非常大,非常长,每次查阅的时候非常的不方便。...然后拿这个时间和我们设定的开始时间和结束时间进行比较,如果在时间段之内,则把这一行字符串插入到一个新的文件。 逻辑清晰,开始实现。...实现 shell 脚本 # 设定开始时间 s='2017/08/01 0:0:0' # 设定结束时间 e='2017/08/01 24:0:0' # 读取 3.log 这个原始文件,并且逐行循环 cat...-f 1 -d \,) # 如果 t 在我们设定的时间段内 if [[ "$t" > "$s" ]] && [[ "$t" < "$e" ]]; # 则将改行追加到 new.log 文件...参见 Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件 以上脚本均在 mac 下测试通过,在 linux 下可能会有稍许不同。

2.1K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件

    Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件 前面我写了一篇博文Shell 从日志文件中选择时间段内的日志输出到另一个文件,利用循环实现了我想要实现的内容。...但是用这个脚本的同事很郁闷,因为执行时间比较长,越大的文件越长。于是找我,问我能不能实现一个更快的方案。 我想了一下,觉得之前的设计是脱裤子放屁,明明有更加简单的实现方法。...想办法获得我要截取的内容的开始的行号,然后再想办法获得我想截取的文件的结尾的行号,然后用两个行号来进行截断文件并输出。就可以实现这个效果了。...^[ \t]*//g' | cut -f1` el=`cat -n $log | grep $e | tail -1 | sed 's/^[ \t]*//g' | cut -f1` # 获取结果并输出到...res.log 文件 sed -n "$sl","$el"'p' $log >> res.log 运行了一下,速度飞起啊!

    3.9K70

    【Java】基础37:如何操作计算机文件?

    在计算机里面,其实就只有两样东西:文件和文件夹。 文档文件,图片文件,视频文件,应用程序文件…… 那在Java中是如何处理这些文件的? 按照面向对象的原则,文件自然也是一个类。...File,文件的意思,顾名思义,就是Java里和文件相关的一个类,它即表示是文件,也可以表示文件夹。 其实文件也好,文件夹也罢,它们本质上是一回事。...Java中的文件路径是用左斜杠“/”分隔开的。 关于正斜杠和反斜杠 在java中路径一般用"/"。 在windows中的路径一般用"\"。...所以在java中写windows路径一般用"/",或者将"\"转义,变成"\"。 "\"是一个转义字符,什么叫转义字符? 就是这个字符它有特别的功能,比如说: ? ①“\t”在Java中打印。...②“\t”在Java中打印。 输出结果为“\t”,在“\”前再加一个“\”,就可以将“\”变成一个普通的字符,这样就可以直接打印“\t”了。 二、File类常用方法 1.获取方法 ?

    81420

    java数据导出为excel表格_将数据库表中数据导出到文本文件

    Excel中,如果手动创建的话需要占用较长的时间去做,而且字段类型的规则又被放到了另一张表,如果手动去一个一个去匹配就很麻烦,所以我先把两张表都导入数据库中,建表的数据如下: 其中字段类型被存放到了另一个表中...,根据字段的code从另一表去取字段类型: 然后通过java程序的方式,从数据库中取出数据自动生成建表语句,生成的语句效果是这样的: 代码如下:(主要是提供思路,对于不同的建表规则不能完全适用...,SQL语句为oracle数据库SQL语句) import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter;...import java.io.IOException; import java.sql.*; import java.util.ArrayList; import java.util.Arrays;...createtablesql.append(AddTip); CT.delete(0,CT.length()); AddTip.delete(0,AddTip.length()); } } } //输出到文本文件

    4.5K40

    【C语言】深度探讨文件操作(一)

    文件提供了一种简单而有效的持久数据存储和交换机制,这是使用文件最主要的原因:存储持久数据。文件可以用于持久地存储数据,即使程序终止或计算机重新启动,文件中的数据也会保留。这提供了一种数据存储的方式。...什么是文件? 文件是计算机系统中用来存储和组织数据的基本单位。 磁盘上的文件是文件。...stdout - 标准输出流,大多数的环境中输出至显示器界面,printf函数就是讲信息输出到标准流中 stderr - 标准错误流,大多数的环境中输出到显示器界面。...上⾯说的适⽤于所有输⼊流⼀般指适⽤于标准输⼊流和其他输⼊流(如⽂件输⼊流);所有输出流⼀般指适⽤于标准输出流和其他输出流(如⽂件输出流)。...= EOF) { fputc(ch, pfwrite); // 逐个读取字符并写入到另一个文件 } // 关闭文件流 fclose(pfread);

    63210

    C语言文件操作(详细)

    ⽂件的打开和关闭 说到文件的打开和关闭,就要说到流和标准流,其实打开文件就是打开流。...1.流: 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出操作各不相同,为了⽅便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流 想象成流淌着字符的河...第二个:stdout - 标准输出流,⼤多数的环境中输出⾄显⽰器界⾯,printf函数就是将信息输出到标准输出 流中。...⽂件的随机读写 1.fseek,函数根据⽂件指针的位置和偏移量来定位⽂件指针 下面来呈现一下 下面是对这函数的分析: 2.ftell函数返回⽂件指针相对于起始位置的偏移量(这样也可以计算字符的个数)...如果从磁盘向计算机读⼊数据,则从磁盘⽂件中读取数据输 ⼊到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等).缓冲区的⼤⼩根据C编译系统决定的。

    52310

    学习文件和文件操作

    有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使⽤,这⾥处理的就是磁盘上⽂件。...文件的打开和关闭  C程序针对⽂件、画⾯、键盘等的数据输⼊输出操作都是通过流操作的。 ⼀般情况下,我们要想向流⾥写数据,或者从流中读取数据,都是要打开流,然后操作。...• stdout 标准输出流,⼤多数的环境中输出⾄显⽰器界⾯,printf函数就是将信息输出到标准输出 流中。 • stderr 标准错误流,⼤多数环境中输出到显⽰器界⾯。...所有输⼊流⼀般指适⽤于标准输⼊流和其他输⼊流(如⽂件输⼊流);所有输出流⼀ 般指适⽤于标准输出流和其他输出流(如⽂件输出流)。...如果从磁盘向计算机读⼊数据,则从磁盘⽂件中读取数据输 ⼊到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。缓冲区的大小是由编译系统决定的。

    61310

    文件操作详解

    一.文件定义与分类 1.文件名 每个文件都要有一个唯一的文件标识,以便用户识别和引用。...2.文件类型 根据数据的组织形式,数据文件被称为 文本文件 或者二进制文 件。 数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是 二进制文件 。...如有整数 10000 ,如果以 ASCII 码的形式输出到磁盘,则磁盘中占用 5 个字节(每个字符一个字节),而二进制形式输 出,则在磁盘上只占 4 个字节。...如果从磁盘向计算机读入数据,则从磁盘文件中读取数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐 个地将数据送到程序数据区(程序变量等),不同的系统文件缓冲区的大小也不同。...示例如下: 此处我们并未创建一个名为myfile的txt文件,由于检索不到且打开"w",系统会自动创建并利用fputs函数在该文件内写入内容。

    3410

    Java实现使用多线程,实现复制文件到另一个目录,起不一样的名字,创建100万个数据

    1 需求 我现在有一个300MB 的文件,想要根据这个文件,创建100万个大小一样的,名称不一样,如何实现,如何比较快点实现 2 实现 1 先准备好这个文件 2 准备好目录 3 写代码...Paths.get(destinationFolderPath, destinationFileName); // try { // 复制源文件到目标文件...; // 需要创建的文件数量 int numThreads = Runtime.getRuntime().availableProcessors(); // 使用可用的处理器核心数作为线程数...Files.createDirectories(Paths.get(destinationFolderPath)); // // // 循环复制文件并创建副本文件...= Paths.get(destinationFolderPath, destinationFileName); // // // 复制源文件到目标文件

    55840

    ⽂件操作(详解!)

    存储地址如下 ⼆进制⽂件和⽂本⽂件 根据数据的组织形式,数据⽂件可以分为⽂本⽂件和⼆进制⽂件 二进制文件,顾名思义就是以二进制的形式存储,并且不加任何转换的输出到外存。...,所以内容是按照此顺序存储的(低位存低地址,高位存高地址) ⽂件的打开和关闭 流和标准流 流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出操作各不相同,为了...标准流 我们在计算机上进行操作时,会默认打开一些流,我们称其为标准流 • stdin - 标准输⼊流,在⼤多数的环境中从键盘输⼊。...• stderr - 标准错误流,⼤多数环境中输出到显⽰器界⾯。 默认打开了这三个流,我们就可以使⽤scanf、printf等函数就可以直接进⾏输⼊输出操作。...: 文件的顺序读写 上⾯说的适⽤于所有输⼊流⼀般指适⽤于标准输⼊流和其他输⼊流(如⽂件输⼊流);所有输出流⼀般指适⽤于标准输出流和其他输出流(如⽂件输出流) 文件的随机读写 fseek fseek

    39210

    js计算出来的文件md5值跟java计算出来的不一致

    最近在项目中遇到了大文件分割上传问题,为了保证上传的文件的有效性需要确保分割的文件上传首先要成功,因此用到了md5加密,在js代码中上传文件之前将要上传的文件内容进行md5加密,然后作为其中一个参数传到后端服务器...,后端再收到文件后对文件进行同样的md5加密,然后将两个md5值对比,验证成功则人为文件分割块是正确的,然后保存,但是却遇到一个问题: 笔者最初使用的是jquery.MD5.js这个库进行加密,尝试对几个字符串加密后与...java端产生的相同,但是上传文件时却md5校验失败,最终发现问题出在下面: function uploadFile1(blob, index, start, end,fileSize) { var...xhr; var fd; var chunk; var sliceIndex=blob.name+index; chunk =blob.slice(start,end);//切割文件 fd =...UTF-16编码的,但是md5插件在计算md5值时是基于二进制流的,因此需要将FileReader读出来的二进制流(已经被转换成UTF-16编码)还原成二进制流。

    3.9K20

    C语言:文件操作详解

    数据在内存中是以二进制形式存储的,所以如果不加以转换输出到磁盘文件中,那该文件就是二进制文件。...4.1 流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出操作各不相同,为了方便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河...因为在C语言程序启动的时候,默认打开了3个流: • stdin - 标准输⼊流,在⼤多数的环境中从键盘输⼊,scanf函数就是从标准输⼊流中读取数据。...//关闭文件 fclose(pf); return 0; } 五、文件的顺序读写 顺序读写函数介绍: 上⾯说的适⽤于所有输⼊流⼀般指适⽤于标准输⼊流和其他输⼊流(如⽂件输⼊流);所有输出流...如果从磁盘向计算机读⼊数据,则从磁盘⽂件中读取数据输⼊到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。缓冲区的⼤⼩根据C编译系统决定的。

    1.2K10
    领券