- 帖子
- 1013
- 积分
- 1228
- 技术
- 14
- 捐助
- 0
- 注册时间
- 2019-2-20
|
[文本处理] 使用批处理或Powershell删除txt文件中的空格和空行和-号然后另存UTF8
本帖最后由 5i365 于 2022-1-11 14:48 编辑
在百度和坛里搜索过一些相关的贴子, 但是都不彻底, 所以新开一贴, 求高手来个总结, 详细描述如下:
使用批处理或Powershell代码:
1.先读取批处理所在文件夹下所有的txt文件,
2.删除读取到的txt文件内容中的所有空格和空行和-号
空格可能的情况有:
在一行开头
在一行结尾
在一行之中
在一行之中的符号前
在一行之中的符号后
空行可能的情况有:
在一行中只有一个空格,在上一步中删除空格后就是空行
在文本最开头
在文本最开头N行空行
在文本最结尾
在文本最结尾N行空行
在文本内部连续两个空行或多个空行
-号可能的情况有:
在一行中只有一个-号,删除-号后就是空行
在文本最开头
在文本最结尾
在文本内部连续两个-号或多个-号
3.最后转为UTF8编码后另存替换原txt文件
遇到的问题:
1.txt文件的编码有可能是ANSI也有可能是UTF8
2.删除空行, 将 \n\r 替换为 空, 好像不能删除多行的空行
3.修改UTF8编码【可参考下面代码, 这个代码也有点小问题,另存后的文件格式是UTF8_BOM, 而需要的是UTF8不带BOM】:
for /f "delims=" %%i in ('dir /b *.txt') do if exist %%i powershell "(Get-Content -Path '%%~fi') | Out-File -Encoding UTF8 -FilePath '%%~fi'"
test.txt测试文件下载
https://wss1.cn/f/7c4aabuntt6 复制链接到浏览器打开 |
|