标题: 【已解决】怎样对时间文本内容进行排序?? [打印本页]
作者: ksla 时间: 2017-2-17 00:47 标题: 【已解决】怎样对时间文本内容进行排序??
本帖最后由 ksla 于 2017-2-17 16:54 编辑
很久无上过来了,这次又遇到问题了,如果发帖格式不对,请管理人员指出!!谢谢
寻求大大帮个小忙!!非常感谢!!!
平时处理要一些txt文件,想通过 时间排序 对 文本内容 进行排列,以防重复再次看到相同内容!!
示例文本
未外理前:
1中国 中国数据 2017年2月19日8时9分47秒 http://aa.com
2美国 数据之家 2017年2月5日6时19分47秒 http://bb.com
3越南 越南之家 2017年2月18日16时5分47秒 http://cc.com
4法国 法国数据 2017年2月18日16时19分3秒 http://dd.com
5金月 金月数据 2017年2月5日16时19分47秒 http://ee.com
6哈哈 哈哈数据 2017年2月20日18时19分47秒 http://ff.com
处理后:
6哈哈 哈哈数据 2017年2月20日18时19分47秒 http://ff.com
1中国 中国数据 2017年2月19日8时9分47秒 http://aa.com
4法国 法国数据 2017年2月18日16时19分3秒 http://dd.com
3越南 越南之家 2017年2月18日16时5分47秒 http://cc.com
2美国 数据之家 2017年2月5日6时19分47秒 http://bb.com
5金月 金月数据 2017年2月5日16时19分47秒 http://ee.com
作者: CrLf 时间: 2017-2-17 02:46
本帖最后由 CrLf 于 2017-2-17 17:00 编辑
- 1>1/* :
- @echo off
- cscript /nologo /e:jscript "%~0" <测试.txt >排序.txt
- pause & exit /b
- */
- var text = WSH.StdIn.ReadAll()
- var arr=[];
-
- text.replace(
- /.+? +(\d+)年(\d+)月(\d+)日(\d+)时(\d+)分(\d+)秒.+/mg,
- function($0,Y,m,d,H,M,S){
- arr.push({dt:new Date(Y+'/'+m+'/'+d+' '+H+':'+M+':'+S),str:$0})
- }
- )
-
- arr = arr.sort(function(a,b){return a.dt-b.dt})
-
- for(var i in arr){
- WSH.Echo(arr[i].str)
- }
复制代码
作者: ksla 时间: 2017-2-17 09:58
回复 2# CrLf
谢谢你的救助!!
我提示了以下错误!!
CScript 错误: 无法找到脚本“e:\cscript\1.bat”的脚本引擎“cscript”。
我电脑无有e盘,我将它修改成 cscript /nologo /d:cscript "%~0" <测试.txt >排序.txt 就出现以下错误!!
输入错误: 指定了未知的选项“/d:cscript”。
我尝试过百度,但无果!!
作者: ksla 时间: 2017-2-17 11:11
回复 2# CrLf
{:3_63:} 大哥,,出来帮帮忙!!
作者: 回家路上 时间: 2017-2-17 15:05
“/e:cscript”改为“/e:jscript”
作者: ksla 时间: 2017-2-17 15:25
回复 5# 回家路上
C:\Users\89054\Desktop\新建文件夹 (8)\1.bat(1, 6) Microsoft JScript 编译错误: 条件编译已关闭
提示这个错误!~!
作者: yu2n 时间: 2017-2-17 15:38
- @set @n=0;/* & echo off
- pushd %~dp0
- cscript /nologo /e:jscript "%~0" <测试.txt >排序.txt
- pause & exit /b
- */
- var text = WSH.StdIn.ReadAll()
- var arr=[];
-
- text.replace(
- /.+? +(\d+)年(\d+)月(\d+)日(\d+)时(\d+)分(\d+)秒.+/mg,
- function($0,Y,m,d,H,M,S){
- arr.push({dt:new Date(Y+'/'+m+'/'+d+' '+H+':'+M+':'+S),str:$0})
- }
- )
-
- arr = arr.sort(function(a,b){return b.dt-a.dt})
-
- for(var i in arr){
- WSH.Echo(arr[i].str)
- }
复制代码
作者: ksla 时间: 2017-2-17 15:41
回复 7# yu2n
非常感谢!!
作者: ksla 时间: 2017-2-17 15:46
回复 2# CrLf
谢谢你!!
作者: CrLf 时间: 2017-2-17 17:00
竟然两处笔误...已修改
作者: ksla 时间: 2017-2-17 17:02
回复 10# CrLf
你好,,我在有偿求助区发帖子了。。能否再写一次,,我会给佣金的
作者: zz100001 时间: 2017-2-17 17:09
估计不会有人给你写了。。
作者: ksla 时间: 2017-2-17 17:27
回复 12# zz100001
有吖,,好心人还是好多的!!
作者: 523066680 时间: 2017-2-17 17:32
本帖最后由 523066680 于 2017-2-17 17:45 编辑
- use Encode;
- open READ, "<:encoding(gbk)", "src.txt";
- my %hash;
- for my $e ( <READ> )
- {
- $e=~s/\r?\n$//;
- if ($e=~/(\d+)\p{han}(\d+)\p{han}(\d+)\p{han}(\d+)\p{han}(\d+)\p{han}(\d+)\p{han}/)
- {
- $t = sprintf("%d%02d%02d%02d%02d%02d", $1, $2, $3, $4, $5, $6 );
- $hash{ $t } = $e;
- }
- }
- close READ;
-
- grep { print encode('gbk', $hash{$_}),"\n" } ( sort keys %hash );
复制代码
假设时间不重复~ 假设文本为GBK
作者: ksla 时间: 2017-2-17 18:44
回复 14# 523066680
谢谢!!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |