标题: [文本处理] 批处理如何删除两个关键字之间的字符,并保留第二个关键字? [打印本页]
作者: mnokoko 时间: 2023-10-29 21:01 标题: 批处理如何删除两个关键字之间的字符,并保留第二个关键字?
已知文件 find.txt ,每一行含都有两个"\"和一个":" 需要删除两个关键字之间的内容,并保留第二个":"
具体内容如下:
USB\VID_090C&PID_2000\AA00000000015098:USB
USB\VID_320F&PID_50D5&MI_00\7&1E81F8C6&0&0000:USB
USB\VID_1038&PID_1361&MI_00\7&2C510F15&0&0000:SteelSeriesSenseiGamingMouse
USB\VID_320F&PID_50D5&MI_01\7&1E81F8C6&0&0001:USB
需求结果如下:
USB\VID_090C&PID_2000:USB
USB\VID_320F&PID_50D5&MI_00:USB
USB\VID_1038&PID_1361&MI_00:SteelSeriesSenseiGamingMouse
USB\VID_320F&PID_50D5&MI_01:USB
作者: Batcher 时间: 2023-10-29 21:13
回复 1# mnokoko
请参考Q-04和Q-05把bat文件和txt文件都保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA- @echo off
- set "OldFile=find.txt"
- set "NewFile=find_new.txt"
- cd /d "%~dp0"
- (for /f "tokens=1-4 delims=\:" %%a in ('type "%OldFile%"') do (
- echo %%a\%%b:%%d
- ))>"%NewFile%"
复制代码
作者: mnokoko 时间: 2023-10-30 00:47
回复 2# Batcher
感谢管理,代码可行,问题解决
作者: hfxiang 时间: 2023-10-30 09:54
本帖最后由 hfxiang 于 2023-10-30 09:55 编辑
回复 1# mnokoko
这类文本问题,俺比较喜欢用第3方工具gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe )来解决- gawk "{sub(/\\[^:\\]+:/,\":\");print}" 1.txt>2.txt
复制代码
作者: hfxiang 时间: 2023-10-30 10:11
回复 1# mnokoko
文本类问题有时用sed( http://bcn.bathome.net/tool/4.9/sed.exe )也很方便:- sed -r "s/\\[^:\\]+:/:/" 1.txt>2.txt
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |