标题: [文本处理] [已解决]批处理怎样提取文本特征字符串并创建新文本? [打印本页]
作者: lxh623 时间: 2011-9-30 22:57 标题: [已解决]批处理怎样提取文本特征字符串并创建新文本?
有个文本,格式如下。我想提取每一段(从“标题”到邻近的下一个“标题”前面)到一个新的文本。比如,有x段,就创建x个文本。
谢谢您!
标题:A卧槽马
分类:
来源:
赛事类型:
赛事:
轮次:
组别:
台次:
日期:
地点:
时间规则:
红方:
红等级分:
红队:
黑方:
黑等级分:
黑队:
解说:陈松顺
录入:leescott
创建日期:
修改日期:
ECCO:
棋谱类型:实战全局/开局
对局种类:
结果:未知
结束方式:
FEN :2baka3/9/4b2RN/9/9/9/9/7C1/2p1p4/3K1C2r w - - 0 1
A卧槽马
车二平五
!
象3进5
马一进三
将5进1
炮二进六
杀!
标题:A钓鱼马
分类:
来源:
赛事类型:
赛事:
轮次:
组别:
台次:
日期:
地点:
时间规则:
红方:
红等级分:
红队:
黑方:
黑等级分:
黑队:
解说:陈松顺
录入:leescott
创建日期:
修改日期:
ECCO:
棋谱类型:实战全局/开局
对局种类:
结果:未知
结束方式:
FEN :3aka3/5R3/4b4/9/6bN1/7R1/9/4KA3/1r1p5/2n6 w - - 0 1
A钓鱼马
车四进一
将5平6
马二进三
将6平5
车二进五
杀!
作者: ArdentMan 时间: 2011-9-30 23:35
本帖最后由 ArdentMan 于 2011-9-30 23:43 编辑
- @Echo Off&SetLocal EnableDelayedExpansion
- For /F "delims=" %%a In (a.txt) Do (
- Set "Str=%%a"
- If "!Str:~,3!" EQU "标题:" Set /A Num+=1
- Echo %%a>>Txt_!Num!.txt
- )
-
复制代码
作者: FOR 时间: 2011-9-30 23:46
关注此题,能用 gawk 解决么?
作者: Hello123World 时间: 2011-10-1 13:05
- @echo off&SetLocal EnableDelayedExpansion
- Set n=0
- For /f "delims=" %%i in (b.txt) do (
- Set a=%%i
- If "!a:~,2!"=="标题" Set /a n+=1
- >>象棋!n!.txt echo %%i)
- pause
复制代码
作者: Seder 时间: 2011-10-1 16:25
回复 3# FOR
gawk "/标题/{i++;}{print>>i\".txt\"}" test
作者: FOR 时间: 2011-10-1 16:52
回复 5# Seder
我测试只生成了一个无前缀名的txt文件,内容和a.txt内容一样。
作者: awk 时间: 2011-10-1 19:01
回复 6# FOR
我这边测试没有问题
版本:3.1.6
作者: Seder 时间: 2011-10-1 19:04
回复 6# FOR
有这样的事?我在ubuntu下运行没问题,后来找了台windows测试也没问题。我用的是这个http://gnuwin32.sourceforge.net/packages/gawk.htm 安装版的gawk
作者: FOR 时间: 2011-10-1 19:06
回复 7# awk
我的版本是 3.1.5 的,难道这个版本读取中文有问题?
请问你的 3.1.6 的是在哪里下载的,能给个链接吗?论坛第三方的是 3.1.5 的。
作者: awk 时间: 2011-10-1 19:10
回复 9# FOR
8楼已经给出了
作者: FOR 时间: 2011-10-1 19:13
重新下了个,论坛的写的是3.1.5但实际上是3.1.6的,
但还是不行,和原来的一样。。
作者: FOR 时间: 2011-10-1 19:23
怎么会这样呢,下载了那个 安装版的,可以安装,但无法使用,重启系统也没用
'gawk' 不是内部或外部命令,也不是可运行的程序
作者: broly 时间: 2011-10-1 19:49
回复 12# FOR
安装版并不是把工具放到%PATH%位置,而是单独一个目录,你找找那个目录下的bin文件夹,把批处理放那里运行
作者: FOR 时间: 2011-10-1 19:57
本帖最后由 FOR 于 2011-10-1 20:01 编辑
现在已完全无法运行了,提示这个
gawk: (FILENAME=a.txt FNR=1) fatal: print to "standard output" failed (No space
left on device)
谁知道是什么原因引起的么?怎么解决?
连 gawk "{print $0}" b.txt 都无法运行了。。555.。。。
作者: FOR 时间: 2011-10-1 22:45
继续求救
ghost 恢复系统也不行,重新下载 gawk 也不行,换安装版的也不行。。。
现在运行 gawk 除了能查看版本和帮助,其他的都不行了。
作者: Seder 时间: 2011-10-2 03:35
回复 15# FOR
把系统的临时目录都清理了试试。一般是:
TEMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
TMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
作者: FOR 时间: 2011-10-2 05:23
回复 16# Seder
也是通宵啊,哈哈。。。
删了,还是不行。。
作者: FOR 时间: 2011-10-2 11:52
复制代码
这样就可以,必须重定向
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |