Drop1 2023-01-19 02:48 采纳率: 37.5%
浏览 64

递归目录下所有文件,生成这些文件名及对应的文件创建时间和修改时间

问题遇到的现象和发生背景

想请教朋友们,服务器是:Linux RHEL6.4,日志的目录结构是:
  logs1目录下:
    20220101目录
      A目录
        WebAccess.log
        SendDataStatus.log
      B目录
        WriteData.log
        DataExecute.log
        VisitPage.log
    20220102目录
    20220103目录     

所有日志的内容都是下面的格式:
  2023-01-18 18:13:19,272 abcdefg<日志内容>  
  2023-01-18 18:25:30,755 abcdefg<日志内容>
  2023-01-18 19:35:30,444 abcdefg<日志内容>

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
    我想到日志中的开始时间就是文件创建时间,结束时间就是文件的修改时间,所以,用这2个时间或取日志中的首行和尾行的时间都行,但LInux知识很缺乏,所以请朋友们指点,非常感谢您!
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
    需求:在生产环境中,不能用.sh脚本,可用linux命令,想得到每个日志文件名及此文件中对应的开始和结束时间,文件名是logs1目录后的路径即可,最好还有“执行时间",执行时间其实就是“结束时间 - 开始时间”,最终需要这样的数据:

  文件名                  日志中的开始时间      结束时间      
  logs1/20220101/A/WebAccess.log      2023-01-18 18:13:19      2023-01-18 18:25:30
  logs1/20220102/B/WriteData.log       2023-01-18 18:13:19      2023-01-18 18:25:30
  logs1/20220103/C/DataExecute.log      2023-01-18 18:13:19      2023-01-18 18:25:30

然后将这样的数据生成到一个文件中。

  • 写回答

1条回答 默认 最新

  • m0_54204465 2023-01-19 18:58
    关注

    可以使用 find 命令来递归查找目录下的所有文件,并使用 xargs 命令来执行对于每个文件所需要的操作。

    可以使用以下命令来查找所有的日志文件

    find logs1 -name "*.log" -print
    
    

    可以使用 xargs 命令来对于每个文件执行操作,如读取首行和尾行的时间并计算执行时间,可以使用下面的命令

    find logs1 -name "*.log" -print0 | xargs -0 -I {} bash -c 'echo {}; head -n 1 {} | awk "{print \$1,\$2}"; tail -n 1 {} | awk "{print \$1,\$2}"'
    
    

    这个命令会输出文件名,文件首行时间,文件尾行时间。

    如果想将这些数据保存到文件中,可以使用重定向符号 > 将输出重定向到文件中。

    find logs1 -name "*.log" -print0 | xargs -0 -I {} bash -c 'echo {}; head -n 1 {} | awk "{print \$1,\$2}"; tail -n 1 {} | awk "{print \$1,\$2}"' > output.txt
    
    

    这样就可以将输出保存到output.txt文件中。

    请注意,这些命令的结果可能与那的文件系统和日志文件的格式有关。如果出现错误或不符合预期,请检查文件系统和日志文件的格式。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月19日

悬赏问题

  • ¥15 Apache显示系统错误3该如何解决?
  • ¥30 uniapp小程序苹果手机加载gif图片不显示动效?
  • ¥20 js怎么实现跨域问题
  • ¥15 C++dll二次开发,C#调用
  • ¥15 请教,如何使用C#加载本地摄像头进行逐帧推流
  • ¥15 Python easyocr无法顺利执行,如何解决?
  • ¥15 为什么会突然npm err!啊
  • ¥15 java服务连接es读取列表数据,服务连接本地es获取数据时的速度很快,但是换成远端的es就会非常慢,这是为什么呢
  • ¥15 vxworks交叉编译gcc报错error: missing binary operator before token "("
  • ¥15 JSzip压缩文件时如何设置解压缩密码