`
tangfl
  • 浏览: 20254 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JAVA 实现 grep + tail 功能

阅读更多
在 linux shell 下经常使用的一个命令组合: grep [-v] "filter" filePath | tail -n needLines,用来查看文件中符合条件的最后 n 行记录,尤其在监控 server 的 log 的时候。
现在有一个需求:从 web 管理后台向 search server 发送一个 stat 命令,查看搜索索引的各项统计信息,其中就包括索引更新,查询的 log 的最后 n 条记录。于是需要在 search server 里实现这样一个功能。
PS:如果是 php,我肯定会选用 exec 一条外部 shell 命令,获取命令的输出 的方式来做,但 java,只好自己动手,重复发明轮子了。
PS2:stl 的 rotate 代码真是太精炼了。有空需要多看看这样的代码,能从中学到很多“ how code talks ”
/** * implenment: grep [-v] "filter" filePath | tail -n needLines * [...]

分享到:
评论

相关推荐

    用java 编写的 linux 中的 shell 源代码

    这个Java实现的Shell包含了诸多常见命令,如`pwd`用于显示当前工作目录,`cd`用于切换目录,`ls`列出目录内容,`cat`查看文件内容,`echo`打印文本,`head`和`tail`分别用于显示文件的前几行和后几行,`grep`进行...

    Java进阶路线

    - **命令行操作**:ls, pwd, cd, mkdir, cat, head, more, less, cp, mv, rm, rmdir, chmod, chown, chgrp, diff, wc, scp, split, tail, touch, find, grep, sort, uniq, tar, df, du, ps, top, kill, crontab, who...

    在window是cmd下实现动态查看日志

    不过,Windows CMD并没有内置这个功能,但我们可以借助第三方工具来实现类似的效果。在提供的资源中,包含了一个名为`tail.exe`的可执行文件,这正是一个适用于Windows的`tail`命令模拟工具。 `tail`命令的主要功能...

    java开发中常用的linux命令汇总

    `ps aux | grep java` 可以查看与Java相关的进程。 18. **kill/killall**:结束进程。`kill -9 pid` 强制结束指定进程ID的进程,`killall process_name` 结束所有同名进程。 19. **top/htop**:实时监控系统资源...

    LogsGrep:类似于grep的实用程序,用于日志文件。-开源

    它遵循Unix的哲学,仅做其主要工作,并期望其输入由其他更高级的工具(tail,cat,type,find ...)生成。 没有目标与Unix grep兼容。 LogsGrep用Java编程语言编写,同时考虑到性能和低资源使用(无字符串,无对象...

    unix4j:Java中Unix命令行工具的实现

    Unix4j是Java中Unix命令行工具的实现。 您可以在Java程序中使用从Unix知道的命令-您可以将一个命令的结果通过Unix传递给另一个命令。 Unix4j为您提供unix命令的功能,例如文本处理,文件管理,以及Java等强类型和可...

    技术总结(自己做项目遇到的问题整理)

    - `List<Map>`转到记事本:在Java中,将List转换成文本格式,通常是为了便于查看或记录,可以使用循环遍历并拼接字符串来实现。 3. **SQL函数**: - `CASE WHEN`函数:在SQL中,这是一种条件判断语句,可以根据...

    mes系统部署

    - 查看日志确认启动成功:`tail -f server.log` #### 六、終止服务 - 查询端口占用:`netstat -anp | grep 8070` - 杀死进程:`kill -9 PID` #### 七、Nginx配置 - 将打包好的前端文件放置于`/home/mesdemo/...

    java面试题,命令大全!

    2. **文本处理**:cat、more、less、head、tail、grep、sed、awk。 3. **权限和用户管理**:chmod、chown、chgrp、su、sudo。 4. **进程管理**:ps、kill、pkill、top、htop。 5. **网络操作**:ping、telnet、...

    java面试题总汇(计算机基础、网络、存储、缓存、分布式、安全)

    `grep`用于搜索文本,`lsof`显示进程打开的文件,`mkdir`创建目录,`rm`删除文件,`tail`查看文件尾部,`whereis`定位命令位置,`pwd`显示当前工作目录,`tar`、`gzip`、`unzip`分别用于归档、压缩和解压缩文件,`...

    java知识全集

    - **grep**: 在文件中搜索指定的字符串。 - **find**: 搜索特定类型的文件。 - **chmod**: 改变文件或目录的权限。 - **chown**: 改变文件或目录的所有者。 **1.3 UNIX系统常用命令(三)** - **tar**: 打包或解压...

    JAVA面试问题,继续

    JAVA 面试问题系列 - Linux 指令与 CPU 负载分析 本文将围绕 Linux 指令和 CPU 负载分析展开,涵盖了 CPU 负载和 CPU 利用率的概念、Linux 指令的应用、CPU 使用率的分析和 troubleshoot 等知识点。 CPU 负载和 ...

    Linux +数据库面试题.pdf

    - **进程启动确认:** 通过 `ps -ef | grep` 检查特定服务是否启动,如 `ps -ef | grep httpd` 和 `ps -ef | grep java` 分别检查 Apache 和 Java 进程。 - **端口冲突检测:** `netstat -an | grep <port>` 用于检查...

    java程序员应学习的Linux命令.pdf

    其他常用命令包括`ln`(创建链接)、`tail`(查看文件尾部,常与`-f`一起用于实时日志监控)、`type`(查找命令路径)、`wc`(统计行数)、`grep`(在文件中搜索特定内容)、`find`(查找文件)、`date`(查看日期)...

    java需要掌握的linux命令.pdf

    - `tail`:显示文件的尾部内容,通常用`tail -f`来实时查看日志。 - `type`:显示命令的路径,确认命令的来源。 - `wc`:统计文件的行数、单词数和字节数。 - `grep`:在文件内容中搜索特定模式。 - `find`:在...

    linux一键部署javaweb环境

    学习使用`grep`、`tail`等命令来追踪错误信息。 通过以上步骤,你将在Linux环境中成功部署一个完整的JavaWeb环境,支持MySQL、Java、Nginx、Redis和PHP。这将为你的开发和测试工作提供便利,同时提高生产环境的稳定...

    linux相关命令学习

    `tail-f`则常用于实时监控日志文件的变化,如`tail-fcatalina.out`用于监视Catalina日志,这对于调试和维护基于Java的应用程序非常有用。 ### 4. 资源限制与优化 #### 内存与线程池配置 通过修改环境变量`WLS_MEM_...

    自动化测试面试题总结.docx

    2. `tail`:用于查看文件尾部,`tail -f`常用于监控日志变化。 3. `more`:分页查看文件内容,如`cat 1.txt | more`。 4. `netstat -a`:查看所有网络连接和监听端口。 5. `ps -ef`:列出系统中所有进程,`grep 进程...

    shell脚本发布jar包服务,war包服务

    - 可能会使用`tail`, `grep`, `awk`等命令行工具,结合`cron`定时任务来定期检查日志文件。 以上内容涵盖了shell脚本在Java应用部署中的核心知识点,包括JAR和WAR的使用,以及如何通过shell脚本来管理和维护Java...

    java软件工程师面试 -Linux常用命令.docx

    在Java软件工程师的面试中,对Linux命令的熟悉程度常常是评估候选人技术能力的一个重要方面。Linux操作系统以其稳定性和灵活性被广泛应用于服务器环境,因此掌握一些基础的Linux命令对于开发人员来说至关重要。 一...

Global site tag (gtag.js) - Google Analytics