找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: 娜美

[文本处理] 批处理怎样找出符合条件的文件?

[复制链接]
发表于 2024-12-5 15:00:19 | 显示全部楼层
回复 1# 娜美


gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe )的解决方案如下。
将以下脚本以ANSI编码格式保存为filter.awk,在命令行窗口下执行:gawk -ffilter.awk *.txt 即可

  1. BEGIN {
  2.         FS = "\t"
  3.         split("Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", month, /,/)
  4.         for (i in month) {
  5.                 m_digit[month[i]] = i
  6.         }
  7. }
  8. b3 == 1 && $3 == 2, $3 == 3 {
  9.         if (b3 == 1 && $3 == 2) {
  10.                 bb2 = b2
  11.                 bb5 = b5
  12.                 oID = 1
  13.         }
  14.         if ($3 > 3 || $3 < 2) {
  15.                 oID = 0
  16.         }
  17.         if (($3 == 3) && (bb5 == $5) && (oID == 1)) {
  18.                 Dt = c_sec($2) - c_sec(bb2)
  19.                 if ((Dt <= 2) && (Dt >= -2)) {
  20.                         print FILENAME
  21.                         nextfile
  22.                 }
  23.         }
  24. }
  25. {
  26.         b3 = $3
  27.         b2 = $2
  28.         b5 = $5
  29. }
  30. function c_sec(dat)
  31. {
  32.         split(dat, t, /[ :,.]+/)
  33.         return mktime(sprintf("%4d %02d %02d %02d %02d %02d", t[3], m_digit[t[1]], t[2], t[4], t[5], t[6]))
  34. }
复制代码

评分

参与人数 1技术 +1 收起 理由
娜美 + 1

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 16:22 , Processed in 0.013873 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表