标题: [文本处理] [已解决]批处理怎样将文本的最后一个逗号改成分号? [打印本页]
作者: hucuibai 时间: 2011-3-29 17:11 标题: [已解决]批处理怎样将文本的最后一个逗号改成分号?
use gamerecord-chn1030
insert into gmoperation(OperationTime,Operator,OperationCommand,Target) values
("2011-1-1 19:31:35", 108040335435, 8, 108040335435),
("2011-1-1 19:31:40", 108040335435, 6, 108040335435),
这样一个txt文档,现在要把最后一个逗号改成分号,要怎么写?求教!
作者: hucuibai 时间: 2011-3-29 18:02
怎么没人来看看啊!
作者: 随风 时间: 2011-3-29 18:04
- @echo off
- (for /f "delims=" %%i in ('findstr /n .* a.txt') do (
- set "str=%%i"
- for /f "tokens=1* delims=:" %%a in ("%%i") do (
- if "%%b"=="" (echo;) else (
- setlocal enabledelayedexpansion
- set "str=!str:*:=!"
- if "!str:~-1!"=="," set "str=!str:~0,-1!;"
- echo;!str!
- endlocal
- ))))>tem.txt
- pause
复制代码
作者: Batcher 时间: 2011-3-29 20:52
复制代码
作者: hucuibai 时间: 2011-3-30 10:00
Batcher的改不了 我只需要改最后一个最后一行最后一个逗号
作者: acaigg 时间: 2011-3-30 10:20
你的没有sed命令吗?
作者: hucuibai 时间: 2011-3-30 10:29
6# acaigg
sed命令有,改过之后就全都变了把每个逗号都改成了分号,而且变成一行了!
作者: hucuibai 时间: 2011-3-30 10:47
sed -i "$s/,$/;/" a.txt我用这个命令改了 但是改了之后的格式不对了,都成一行了 每行之间有一个退格符
作者: Batcher 时间: 2011-3-30 12:24
8# hucuibai
你用的哪个版本的sed?什么操作系统?
作者: Batcher 时间: 2011-3-30 12:25
7# hucuibai - sed "s/,$/;/" a.txt | more >b.txt
复制代码
作者: CrLf 时间: 2011-3-30 13:35
本帖最后由 zm900612 于 2011-3-31 17:04 编辑
- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (1.txt) do (
- echo;!last!
- set last=%%a
- )
- if "!last:~-1!"=="," set last=!last:~0,-1!;
- echo %last%)>tmp
- move tmp 1.txt
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |