Board logo

标题: 请教:TXT文件拆分问题 [打印本页]

作者: 99122524     时间: 2008-5-8 02:10    标题: 请教: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 ]
作者: pusofalse     时间: 2008-5-8 03:16


  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 ]
作者: zqz0012005     时间: 2008-5-8 03:40
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

作者: HAT     时间: 2008-5-8 11:13
1.

split -60 test.txt