标题: [文本处理] 求助制作批处理删除文本中的指定字符 [打印本页]
作者: sg1968321 时间: 2022-9-7 05:37 标题: 求助制作批处理删除文本中的指定字符
我有大量文本行如下;
aaaaaaaa <aaa>123.<bbb>456.<ccc>
abcdefg <ddd>111.<eee>333.<fff>
..... ........
有几十万行,如何批量清除"<>"中的字符,变成:
aaaaaaa 123.456.
abcdefg 111.333.
作者: yakeyun 时间: 2022-9-7 07:12
本帖最后由 yakeyun 于 2022-9-7 07:16 编辑
回复 1# sg1968321
测试没问题后,再加一句删除1.txt,并把2.txt命名为1.txt.- @echo off
- cd /d "%~dp0"
- setlocal enabledelayedexpansion
- (for /f "tokens=1,3,5 delims=<>^ " %%a in (1.txt) do (
- echo %%a %%b%%c
- ))>2.txt
- mshta vbscript:msgbox("数据处理完成!")(window.close)
- exit
复制代码
作者: hfxiang 时间: 2022-9-7 08:45
如果行数太多,批处理的效率可能偏低,建议用第3方工具,如sed( http://bcn.bathome.net/tool/4.8/sed.exe ),当然unix的文本三剑客之一awk或其它工具也行,以下示例是用sed的命令行来实现- sed -e :a -e "s/<[^>]*>//g;/</N;//ba" a.txt>b.txt
复制代码
作者: hfxiang 时间: 2022-9-7 09:15
如果无跨行的尖括号,可简化如下:- sed -e "s/<[^>]*>//g" a.txt>b.txt
复制代码
作者: hfxiang 时间: 2022-9-9 13:10
以下示例用 awk ( http://bcn.bathome.net/tool/4.1.0/gawk.exe ) 的命令行来实现- gawk "{gsub(/<[^>]*>/,\"\")};1" a.txt>b.txt
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |