标题: 单双行合并
[打印本页]
作者: sylovanas
时间: 2008-3-16 20:31
标题: 单双行合并
本文如下:
C:\1\1.1\0
C:\1\1.7\0
C:\1\1.5\0
C:\1\1.8
需求是将双行合并到单行并在中间加 => 符号
EX:
C:\1\1.1\0 => C:\1\1.7\0
C:\1\1.5\0 => C:\1\1.8
第三方工具的话可以用grep和sed
目前想到的方式是用grep或findstr去判断行号来做
但目前想不出方式来做
还请各位高手帮助了
作者: ThinKing
时间: 2008-3-16 23:27
sed "N;s/\n/ => /" urfile
作者: HAT
时间: 2008-3-16 23:31
纯P也可以实现,以前有人发过帖子:
@echo off
setlocal enabledelayedexpansion
rem m表示几行合并为一行
set /a m=2
for /f "tokens=*" %%i in (test.txt) do (
set /a hangn+=1
set /a n+=1
set line=!line!%%i
if !n! equ !m! (
echo !line!>>result.txt
set line=
set /a n=0
)
)
rem 以下代码用于处理剩下的行
set /a t=!hangn!%%!m!
if !t! equ 0 goto end
echo !line!>>result.txt
:end
endlocal
作者: sylovanas
时间: 2008-3-17 01:30
感谢,二楼ThinKing的可用
三楼HAT的因为这边可能会碰到特殊字元"!"所以我这里是尽量避开用使用环境变数延迟 (不好意思这是繁体中文的用法),而且可能会有很多行,所以也是尽量避免用到for影响执行效率,还是感谢了
[
Last edited by sylovanas on 2008-3-17 at 01:34 AM ]