使用Windows批处理脚本将文本文件分割成多个文件

5

我需要使用Windows批处理脚本将一个文本文件拆分成多个文件,有人可以帮我吗?

示例文本文件:

abc1-10
abc1-11
abc1-12
xyz2-01
xyz2-02
xyz3-01
xyz3-02

在这种情况下,它必须分成3个文件:第一个文件包含行abc1-xx,第二个文件包含xyz2-xxxyz3-xx放在最后一个文件中。
3个回答

6

你可以使用批处理文件,但为什么不直接使用FINDSTR命令呢?

findstr /R "^abc1-" sample.txt > file1.txt
findstr /R "^xyz2-" sample.txt > file2.txt
findstr /R "^xyz3-" sample.txt > file3.txt

1
从学术角度来看这是正确的,但当前缀未知且可变时就变得难以操作了。 - foxidrive
如果数据行中包含目标字符串但不是在开头,会发生什么? - Magoo
谢谢fthiella,我在发布这条消息后已经想出了解决方案。 - user3140605

6
请使用cgwin命令SPLIT。
样例:
-将文件按照每500行进行分割:
      split -l 500 [filename.ext]

For more: split --help


5
这可能会有所帮助 - 它将把文本拆分为单独的文件,如:
abc1.txt
xyz2.txt
xyz3.txt
@echo off
for /f "tokens=1,* delims=-" %%a in ('type "file.txt"') do (
>>"%%a.txt" echo(%%a-%%b
)
pause

谢谢foxidrive,发完这个帖子后我已经想出了解决方案。 - user3140605

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接