楼 主
[求助]怎么查询并输出2个时间内的1段数据
发表于 2007-10-30 18:54 · 中国 河南 郑州 联通
初级用户
★
积分 30 发帖 13 注册 2007-10-26 10:25 18年会员 UID 100817 性别 男
状态 离线
第 2 楼
发表于 2007-10-30 18:55 · 中国 河南 郑州 联通
初级用户
★
积分 30 发帖 13 注册 2007-10-26 10:25 18年会员 UID 100817 性别 男
状态 离线
比如 2007年10月1日 到 2007年11月1日之间
第 3 楼
发表于 2007-10-30 19:57 · 中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,436 发帖 739 注册 2007-10-11 17:44 18年会员 UID 99469 性别 男
状态 离线
第 4 楼
发表于 2007-10-30 20:54 · 中国 河南 郑州 联通
初级用户
★
积分 30 发帖 13 注册 2007-10-26 10:25 18年会员 UID 100817 性别 男
状态 离线
序列号 订单 用户 出厂日期 维修日期 完结日期
de23422 13321 王学兵 2006年6月18日 2007年3月28日 2007年4月10日
fa22578 18032 李雪 2006年8月5日 2007年4月20日 2007年4月29日
。。。。。
。。。。。
。。。。。
ke23089 52108 赵广辉 2007年1月5日
le58212 32102 张耀峰 2007年1月5日 2007年10月20 2007年10月28日
格式就是这样,查询 2007年10月20日 到 2007年4月20日 中间的记录
第 5 楼
发表于 2007-10-30 21:35 · 中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,436 发帖 739 注册 2007-10-11 17:44 18年会员 UID 99469 性别 男
状态 离线
第 6 楼
发表于 2007-10-30 21:48 · 中国 河南 郑州 联通
初级用户
★
积分 30 发帖 13 注册 2007-10-26 10:25 18年会员 UID 100817 性别 男
状态 离线
是的,只是这个表达式想不出该杂写,还望大家不吝赐教!!!
第 7 楼
发表于 2007-10-30 23:53 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 19年会员 UID 73968 性别 男
状态 离线
@echo off
echo 请输入起始日期 如:2007-3-29
set /p d=
echo 请输入结束日期 如:2007-4-29
set /p h=
set /p var=<a.txt
cls
echo %var%
setlocal EnableDelayedExpansion
for /f "delims=" %%i in (a.txt) do (
for /f "tokens=5 delims= " %%a in ("%%i") do (
if not "%%a"=="" (
set num=%%a
set num=!num:年=-!
set num=!num:月=-!
set num=!num:日=!
if !num! geq !d! if !num! leq !h! echo %%i
)))
pause
[
Last edited by 26933062 on 2007-10-30 at 11:55 PM ]
致精致简!
第 8 楼
发表于 2007-10-31 00:55 · 中国 浙江 杭州 电信
高级用户
★★
积分 537 发帖 219 注册 2007-08-04 09:43 19年会员 UID 94620 性别 男 来自 杭州--半山
状态 离线
echo off
@for /f "tokens=1-6 delims=: " %%a in ('findstr /n " 2007年4月20日 " 111.txt') do (
if "%%f" == "2007年4月20日" set n=%%a& goto 2
)
:2
@for /f "tokens=1-6 delims=: " %%a in ('findstr /n " 2007年10月20 " 111.txt') do (
if "%%f" == "2007年10月20" set n1=%%a& goto 3
)
:3
sed -n "%n%,%n1%p" 111.txt|more>>fix_date.txt
pause
[ Last edited by junchen2 on 2007-10-31 at 01:07 AM ]
第 9 楼
发表于 2007-10-31 01:25 · 中国 浙江 杭州 电信
高级用户
★★
积分 537 发帖 219 注册 2007-08-04 09:43 19年会员 UID 94620 性别 男 来自 杭州--半山
状态 离线
不知道仅用SED能否写出
[ Last edited by junchen2 on 2007-10-31 at 01:39 AM ]
第 10 楼
发表于 2007-10-31 04:52 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 20年会员 UID 59080
状态 离线
试试这个:
sed "/^\(]\+]\+\)\{4\}2007年4月20.*/,/^\(]\+]\+\)\{4\}2007年10月20.*/!d" UrTestFile.txt |sed "1d;$d"
[
Last edited by lxmxn on 2007-10-31 at 04:55 AM ]
第 11 楼
发表于 2007-10-31 08:50 · 中国 浙江 杭州 电信
高级用户
★★
积分 537 发帖 219 注册 2007-08-04 09:43 19年会员 UID 94620 性别 男 来自 杭州--半山
状态 离线
用lxmxn兄的代码试了一下好用。谢谢!
[ Last edited by junchen2 on 2007-10-31 at 08:52 AM ]
第 12 楼
发表于 2007-10-31 10:02 · 中国 河南 郑州 联通
初级用户
★
积分 30 发帖 13 注册 2007-10-26 10:25 18年会员 UID 100817 性别 男
状态 离线
第 13 楼
发表于 2007-10-31 10:32 · 中国 河南 郑州 联通
初级用户
★
积分 30 发帖 13 注册 2007-10-26 10:25 18年会员 UID 100817 性别 男
状态 离线
Originally posted by 26933062 at 2007-10-30 11:53 PM:
@echo off
echo 请输入起始日期 如:2007-3-29
set /p d=
echo 请输入结束日期 如:2007-4-29
set /p h=
set /p var=<a.txt
cls
echo %var%
setlocal EnableDelayedExpansion
...
文档中某些记录有3个日期,因此查出来的结果有点乱:(
比如查2006年10月20日 到2007年8月20日,结果 除了第3条都显示出来了
第 14 楼
发表于 2007-10-31 11:10 · 中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,436 发帖 739 注册 2007-10-11 17:44 18年会员 UID 99469 性别 男
状态 离线
7楼写的是有问题的
例如:
set a=2007-4-21
set b=2007-10-21
if %a% lss %b% (echo yes) else echo no
pause
第 15 楼
发表于 2007-10-31 11:36 · 中国 河南 郑州 联通
初级用户
★
积分 30 发帖 13 注册 2007-10-26 10:25 18年会员 UID 100817 性别 男
状态 离线
Originally posted by junchen2 at 2007-10-31 12:55 AM:
echo off
@for /f "tokens=1-6 delims=: " %%a in ('findstr /n " 2007年4月20日 " 111.txt') do (
if "%%f" == "2007年4月20日" set n=%%a& goto 2
)
:2 ...
sed /? 提示不是内部或外部命令。。。
这个命令是什么?
这个批处理在我机器上无结果:(
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正