中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 请教:TXT文件拆分问题 上一主题 | 下一主题
99122524
初级用户





积分 47
发帖 16
注册 2008-5-6
状态 离线
『楼 主』:  请教:TXT文件拆分问题

问题1:TXT文件中有300行内容
请问如何将每60行另存为一个TXT文件
问题2:如何将生成后的文件中有特定字符(假设特定字符有C1)的行另存为其他文本文件
问题3:假设每行特定位置有数字  请问如何按要求将内容按指定位置数字大小递增排列
首先对回答者表示诚心的感谢 !!!!!
3的意思是:将文件中有特殊字符的行分别排放(比如1行:123c456789
2行:333c3245234
……c……
4行:123b456789
5行:234b345346
同样的道理集中排放)

[ Last edited by 99122524 on 2008-5-8 at 08:25 PM ]

2008-5-8 02:10
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (99122524)  编辑帖子  回复  引用回复
pusofalse
银牌会员




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



  Quote:
问题1:TXT文件中有300行内容
请问如何将每60行另存为一个TXT文件
问题2:如何将生成后的文件中有特定字符(假设特定字符有C1)的行另存为其他文本文件
问题3:假设每行特定位置有数字  请问如何按要求将内容按指定位置数字大小递增排列
首先对回答者表示诚心的感谢 !!!!!

1、会忽略空行
@echo off&setlocal enabledelayedexpansion
set m=0
set n=0
:1
if %m% equ 0 (set /a m+=1) else (set/a m+=60)
set/a n+=60
set x=0
for /f "tokens=*" %%a in (1.txt) do (
  set /a x+=1
  for /l %%i in (%m% 1 %n%) do if !x! equ %%i set str=%%a&echo !str!>>%n%.txt
)
if %n% lss 300 goto 1
pause
2、如果生成后的文件是由问题1得来的文件,那就如下:
for /l %%a in (60 60 300) do findstr /i "c1" %%a.txt>>res.txt
} ELSE {
findstr /i "c1" Yourfile>>res.txt
3、米看懂。。。- -|||

[ Last edited by pusofalse on 2008-5-8 at 03:27 AM ]

2008-5-8 03:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zqz0012005
中级用户




积分 297
发帖 135
注册 2006-10-21
状态 离线
『第 3 楼』:  

1
@echo off
setlocal EnableDelayedExpansion
set /a a=0
for /f "delims=" %%a in (1.txt) do (
        set /a a+=1,b=(!a!-1)/60
        if !b!==0 echo %%a>>60.txt
        if !b!==1 echo %%a>>120.txt
        if !b!==2 echo %%a>>180.txt
        if !b!==3 echo %%a>>240.txt
        if !b!==4 echo %%a>>300.txt
)
2
for /l %%a in (60 60 300) do findstr /i "c1" %%a.txt>>c1.txt
3假设每行第1-3个字符为特定位置
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%a in (1.txt) do (
        set line=%%a
        set "line_tmp=!line:~0,3! !line!"
        echo !line_tmp!>>temp.txt
)
for /f "tokens=1*" %%i in ('sort temp.txt') do echo %%j>>2.txt
del temp.txt


2008-5-8 03:40
查看资料  发短消息 网志  OICQ (411976538)  编辑帖子  回复  引用回复
HAT
版主





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

1.

split -60 test.txt

2008-5-8 11:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: