中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]批处理整理文本,高手赐教,谢谢!
« [1] [2] »
作者:
标题: [求助]批处理整理文本,高手赐教,谢谢! 上一主题 | 下一主题
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『楼 主』:  [求助]批处理整理文本,高手赐教,谢谢!

我有一聊天记录如下:

===== 2008-09-07 19:10:25         1020          =====

        1017,        ?

===== End =====

===== 2008-09-07 19:10:30         1020          =====

        1017,        1020

===== End =====

===== 2008-09-07 19:11:48         1020          =====

        1015,        今天当班啊?

===== End =====

===== 2008-09-07 19:12:11         1015          =====

        1020,        我天天当班啊

===== End =====

===== 2008-09-07 19:12:16         1020          =====

        1015,        哈哈

===== End =====

===== 2008-09-07 19:12:23         1015          =====

        1020,        你一个人上班?

===== End =====

===== 2008-09-07 19:12:23         1020          =====

        1015,        小万里?

===== End =====

===== 2008-09-07 19:12:29         1015          =====

        1020,        奖励发了吗

===== End =====

===== 2008-09-07 19:12:31         1020          =====

        1015,        不是

===== End =====

===== 2008-09-07 19:12:35         1020          =====

        1015,        还没哦

===== End =====

===== 2008-09-07 19:12:37         1020          =====

        1015,        你呢?

===== End =====

===== 2008-09-07 19:12:40         1015          =====

        1020,        你看了啊

===== End =====

===== 2008-09-07 19:12:59         1015          =====

        1020,        你估计有多少啊

===== End =====

===== 2008-09-07 19:13:00         1020          =====

        1015,        看了什么?

===== End =====

===== 2008-09-07 19:13:07         1020          =====

        1015,        不知道哦

===== End =====

===== 2008-09-07 19:13:07         1015          =====

        1020,        卡啊

===== End =====

===== 2008-09-07 19:13:15         1020          =====

        1015,        你应该不会少的

===== End =====

===== 2008-09-07 19:13:19         1020          =====

        1015,        我还没看

===== End =====

===== 2008-09-07 19:13:26         1020          =====

        1015,        我前天看了,没有

===== End =====

===== 2008-09-07 19:13:53         1015          =====

        1020,        听说的

===== End =====

===== 2008-09-07 19:14:08         1020          =====

        1015,        你就到了啊?

===== End =====

===== 2008-09-07 19:14:48         1020          =====

        1015,        哦,希望有这么多

===== End =====

===== 2008-09-07 19:14:56         1020          =====

        1015,        你几点下班哦

===== End =====

===== 2008-09-07 19:15:09         1015          =====

        1020,        我等下就回家了

===== End =====

===== 2008-09-07 19:15:45         1020          =====

        1015,        就回去啊

===== End =====

===== 2008-09-07 19:16:07         1015          =====

        1020,        是啊,早下班了

===== End =====

===== 2008-09-07 19:18:11         1015          =====

        1020,        OK

===== End =====

===== 2008-09-07 19:18:15         1015          =====

        1020,        886

===== End =====

===== 2008-09-07 19:18:18         1020          =====

        1015,        88

===== End =====



想通过批处理整理成如下格式:

小林,?
小林,小张
小李,今天当班啊?
小张,我天天当班啊
小李,哈哈
小张,你一个人上班?
小李,小万里?
小张,奖励发了吗
小李,不是
小李,还没哦
小李,你呢?
小张,你看了啊
小张,你估计有多少啊
小李,看了什么?
小李,不知道哦
小张,卡啊
小李,你应该不会少的
小李,我还没看
小李,我前天看了,没有
小张,听说的
小李,你就到了啊?
小李,哦,希望有这么多
小李,你几点下班哦
小张,我等下就回家了
小李,就回去啊
小张,是啊,早下班了
小张,OK
小张,886
小李,88


1017代表小林   1015代表小李   1020代表小张

我只会简单的批处理,请高手帮忙完善
type imw_1909_17963.txt|find /v "=====">1.txt

批处理要求遍历此文件夹下所有的TXT文件找出聊天记录,谢谢!

文本附件http://www.cn-dos.net/forum/atta ... b698&download=1

[ Last edited by hbby on 2008-9-7 at 09:48 PM ]

附件 1: imw_1909_17963.rar (2008-9-7 21:46, 643 bytes,下载次数: 12)
2008-9-7 20:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 2 楼』:  


@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir/b/a-d *.txt') do (
for /f "skip=2 eol== delims=" %%a in ('type %%i') do (
set a=%%a
set a=!a:1015=小李!
set a=!a:1017=小林!
set a=!a:1020=小张!
set a=!a:        =!
set a=!a:~,-1!
if not "!a!"=="" echo !a! >>linshi.txt
)
)
pause
至于你想找出所有这样的聊天记录,检查一下这样的文本文件名有没什么规律,比如文件名中都有"聊天"这两个字

[ Last edited by huahua0919 on 2008-9-7 at 10:41 PM ]

   此帖被 +7 点积分      点击查看详情   
评分人:【 pusofalse 分数: +7  时间:2008-9-7 20:18


2008-9-7 20:16
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 3 楼』:  

学习,eol==用的太好了!避免使用findstr而降低效率



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-9-7 20:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 4 楼』:  

huahua0919,问题还是没解决哦,
1、没有遍历文件夹下所有的TXT文件,
2、没有处理空行,
3、没有处理空格,
劳烦完善下,谢谢

2008-9-7 20:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 5 楼』:  

1.你确定你文件夹下面的全是聊天的文件?
2.你要怎么处理空行?
3.空格是不是不要,只要全部连在一起?

2008-9-7 20:40
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 6 楼』:  

1、确定全是聊天文本
2、删除多余的空行
3、删除TAB键生成的空格
4、显示结果保存到文本
谢谢!!

2008-9-7 20:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 7 楼』:  

修改过!

2008-9-7 20:51
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 8 楼』:  

我粘贴的文本空格其实是TAB生成的,并不是空格,能否处理?谢谢huahua0919

2008-9-7 20:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 9 楼』:  

难道我上面的代码没有处理TAB空格吗?

2008-9-7 21:02
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 10 楼』:  

没有,huahua0919老兄,有QQ吗?我把原始文本给您看看!

2008-9-7 21:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 11 楼』:  Re 8楼

论坛会把tab处理成空格,所以最好在提问的时候描述清楚,或者干脆用附件的形式贴出来:)



2008-9-7 21:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 12 楼』:  

我增加了附件,请HAT看看,谢谢

2008-9-7 21:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 13 楼』:  

set a=!a:        =!
set b=!b:        =!
请注意2楼的这两句代码,冒号后面是个tab,而不是8个空格,你拷贝2楼的代码以后需要手工修改。



2008-9-7 21:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 14 楼』:  

修改了,不行,您下载附件看看

2008-9-7 22:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hbby
中级用户





积分 220
发帖 99
注册 2005-8-16
状态 离线
『第 15 楼』:  

作为菜鸟的我提供一个思路,由于文本本身是ANSI编码的,所以我估计还是先要用FIND命令先过滤下吧!?不对请指正!

2008-9-7 22:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: