中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 20:46
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]提取指定字符串前的内容
可打印版本  941 / 13
第1楼 ka56 发表于 2009-05-16 10:47
中级用户 发帖 129 积分 234
[已结]提取指定字符串前的内容
想去除每条新闻后面的时间,文本内容这样:
· 大韩航空将增加中国运力 ( 2009-05-16 20:39:21)
· 九成以上地市猪肉价格持平 ( 2009-05-16 20:34:44)
· 达美航空公司将于6月开通上海至底特律直飞航线 ( 2009-05-16 20:34:24)
· 新浦东描绘上海国际金融中心“核心功能区”蓝图 ( 2009-05-16 20:33:41)
· 上证所将稳步推进国际板建设 ( 2009-05-16 20:31:20)

· 鲁炜:为国际金融中心建设提供信息支撑是历史赋予新华社的责任 ( 2009-05-16 20:23:30)
· 中国3G:繁荣背后仍有隐忧 ( 2009-05-16 20:18:46)
· 广西大规模搜山追捕凌云"5•15"命案犯罪嫌疑人 ( 2009-05-16 20:16:31)
· 王毅:海峡论坛举办标志着两岸民间交往迈上新台阶 ( 2009-05-16 20:15:11)
· 特写:“期待两岸孙中山文物文献真正团圆” ( 2009-05-16 20:12:59)

上5行和下5行中间有个只带一个空格的行,想以" ( 2009-"作分割符,提取之前的文本内容,这些新闻出处:http://www.xinhuanet.com/gdbb_gd.htm

想得到这样的:

· 大韩航空将增加中国运力
· 九成以上地市猪肉价格持平
· 达美航空公司将于6月开通上海至底特律直飞航线
· 新浦东描绘上海国际金融中心“核心功能区”蓝图
· 上证所将稳步推进国际板建设

· 鲁炜:为国际金融中心建设提供信息支撑是历史赋予新华社的责任
· 中国3G:繁荣背后仍有隐忧
· 广西大规模搜山追捕凌云"5?15"命案犯罪嫌疑人
· 王毅:海峡论坛举办标志着两岸民间交往迈上新台阶
· 特写:“期待两岸孙中山文物文献真正团圆”

谢谢!!

[ Last edited by ka56 on 2009-5-17 at 09:24 ]
第2楼 ka56 发表于 2009-05-16 10:52
中级用户 发帖 129 积分 234
求这样的P代码,如果只以"("做分隔,怕新闻内容中也有带括号的

[ Last edited by ka56 on 2009-5-16 at 10:53 ]
第3楼 netbenton 发表于 2009-05-16 11:21
银牌会员 发帖 752 积分 1,916 来自 广西
::就以(号为分隔就行了

@echo off&for /f "delims=(" %%a in (a.txt) do echo %%a
第4楼 ka56 发表于 2009-05-16 11:28
中级用户 发帖 129 积分 234
谢谢朋友抽空解答!
处理后上5行和下5行之间会出现:ECHO 处于打开状态。
怎样避免?
第5楼 ka56 发表于 2009-05-16 12:01
中级用户 发帖 129 积分 234
用这样的应付下,哪位大大帮完善下?呵呵~~
cd.>去除后.txt
sleep 100
for /f "delims=2009-0" %%a in (待处理.txt) do echo "%%a">>去除后.txt
第6楼 jmz573515 发表于 2009-05-16 12:23
银牌会员 发帖 464 积分 1,212
第7楼 ka56 发表于 2009-05-16 12:32
中级用户 发帖 129 积分 234
· 大韩航空将增加中国运力
· 九成以上地市猪肉价格持平
· 达美航空公司将于6月开通上海至底特律直飞航线
· 新浦东描绘上海国际金融中心“核心功能区”蓝图
· 上证所将稳步推进国际板建设
ECHO 处于关闭状态。
· 鲁炜:为国际金融中心建设提供信息支撑是历史赋予新华社的责任
· 中国3G:繁荣背后仍有隐忧
· 广西大规模搜山追捕凌云"5?15"命案犯罪嫌疑人
· 王毅:海峡论坛举办标志着两岸民间交往迈上新台阶
· 特写:“期待两岸孙中山文物文献真正团圆”
第8楼 netbenton 发表于 2009-05-16 13:53
银牌会员 发帖 752 积分 1,916 来自 广西
加个分号:

@echo off&for /f "delims=(" %%a in (a.txt) do echo;%%a
第9楼 ka56 发表于 2009-05-16 14:34
中级用户 发帖 129 积分 234
真厉害...感谢!

另,分隔符里含空格不知道有解不,哈哈
第10楼 yishanju 发表于 2009-05-17 05:58
银牌会员 发帖 1,357 积分 1,488
用FR处理的话。。。。:

fr -ric:"(.*)( \(.*\) )" -t:"\1" xx.txt
第11楼 yishanju 发表于 2009-05-17 06:07
银牌会员 发帖 1,357 积分 1,488
如果有BUG还可以写得更精确一点:
fr -ric:"(.*)( \(.*\d{4,4}-\d{2,2}-\d{2,2}.*\d{2,2}:\d{2,2}:{2,2}\) )" -t:"\1" xx.txt

没有测试过代码。
第12楼 ka56 发表于 2009-05-17 06:41
中级用户 发帖 129 积分 234
谢谢!
我没学过FR,看起来似天书,有时间一定学学~
本来是想过滤下放到语音阅读软件里,听新闻以节省时间,,,没想到引来多位大大的帮助,兄弟在此向大家鞠躬了!!
第13楼 yishanju 发表于 2009-05-17 07:33
银牌会员 发帖 1,357 积分 1,488
学会正则表达式,就简单了
FR 下载http://baiy.cn/utils/fr/index.htm
第14楼 ka56 发表于 2009-05-17 09:24
中级用户 发帖 129 积分 234
试下效率似乎很高,好东东...感谢!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023