请问怎么把TXT文件中特定字符之间内容拆分成单独的TXT文件,并且以前几个字符命名这个txt文件?

请问怎么把TXT文件中特定字符之间内容拆分成单独的TXT文件,并且以前几个字符命名这个txt文件?,第1张

不清楚你的实际文件/情况,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xxbat,编码选ANSI,跟要处理的文件放一起运行<# :
cls
@echo off
rem 将一个txt文本文件里的内容按照含有指定特征字符串的行及其下面的多行内容分割成多个小的txt文件
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IOFile]::ReadAllText('%~f0',[TextEncoding]::Default)))"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$txtfile='\yourfiletxt';
if(-not (test-path -liter $txtfile)){Write-host ('"'+$txtfile+'" not found');exit;};
$enc=[TextEncoding]::Default;
$text=[IOFile]::ReadAllLines($txtfile, $enc);
$dic=New-Object 'SystemCollectionsGenericDictionary[string,Object]';
$newfile='';
for($i=0;$i -lt $textcount;$i++){
    if($text[$i]Contains('>sp|')){
        $newfile='\'+$text[$i]split('|')[1]+'txt';
        if(($newfile -ne '') -and (-not $dicContainsKey($newfile))){
            [SystemCollectionsArrayList]$a=@();
            $dicadd($newfile,$a);
        };
    };
    if($dicContainsKey($newfile)){[void]$dic[$newfile]add($text[$i]);};
};
foreach($k in $dicKeys){
    write-host $k;
    [IOFile]::WriteAllLines($k, $dic[$k], $enc);
}

txt文本分割器
这个文本分割器可以把较大的文本平均分割成若干个文本,然后多文本导出到一个文件夹!
下载地址:>用Replace Pioneer 22 拆分txt文本,可以按行/段/字节数拆分等等。
按100行拆分的详细步骤:
1 ctrl-o打开txt文件
2 打开菜单:
File->Save as->Save to files -- Split by bytes/Lines
3 假设要把名字存为A001txt, a002txt,
把Split nameing 改成A###txt
在Split by 后输入100并选中Lines表示按100行分
4 点击next,比如要保存到c:\temp,就选择c:\temp\atxt作为保存的文件名,点击保存即可。
Replace Pioneer下载 >

数据文件(EXCEL,CSV,TXT)的分割使用Dataolllo数据助手,可以按照分割为任意个文件,也可以按照关键字来分割,比如里面有字段“城市”,可以按照各个城市来分割文件。

有些分割器乱码是不支持utf-8,有些是因为按字节数而不是字符数分割,导致某个汉字被分到前后两个文件中产生乱码。
推荐用软件Replace Pioneer,可以按整字数,行数或特殊符号分割,支持任意常用编码方式。我试了utf8分割得很好。
详细步骤:
1 打开Replace Pioneer,选择Settings->Encoding->utf-8选项
2 ctrl-o打开待处理的txt文件
3 选择File->SaveAs->Split by bytes/lines菜单
把Split Naming中的内容改为需要的格式,比如###txt就会分割为001txt, 002txt
在Split File by输入按多少字数bytes/行数lines分割
点击Next,并输入一个结果文件名即可。
注:如果结果文件名为abctxt, Split Naming为${BASE}_###txt,那么分割的文件是abc_001txt, abc_002txt,
============================================
补充回答:
你的说法很对,Replace Pioneer是按照字数分割的,utf8编码一个汉字基本上占用3个字节,所以差不多是1/3,需要计算一下。
同理你如果分割ansi汉字文件,一个汉字占2个字节,所以分4k要输入2000
如果分割纯英文ansi文本, 一个字符占一个字节,所以分4k要输入4000

>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10606812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存