楼 主
单双行合并
发表于 2008-03-16 20:31 · 中国 台湾 宜兰县 中华电信
初级用户
★
积分 107 发帖 42 注册 2007-09-03 16:43 18年会员 UID 96475 性别 男
状态 离线
本文如下:
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去判断行号来做
但目前想不出方式来做
还请各位高手帮助了
第 2 楼
发表于 2008-03-16 23:27 · 中国 湖北 武汉 电信
中级用户
★★
积分 471 发帖 207 注册 2007-05-03 14:53 19年会员 UID 87369 性别 男
状态 离线
sed "N;s/\n/ => /" urfile
第 3 楼
发表于 2008-03-16 23:31 · 中国 重庆 电信
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
纯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
第 4 楼
发表于 2008-03-17 01:30 · 中国 台湾 宜兰县 中华电信
初级用户
★
积分 107 发帖 42 注册 2007-09-03 16:43 18年会员 UID 96475 性别 男
状态 离线
感谢,二楼ThinKing的可用
三楼HAT的因为这边可能会碰到特殊字元"!"所以我这里是尽量避开用使用环境变数延迟 (不好意思这是繁体中文的用法),而且可能会有很多行,所以也是尽量避免用到for影响执行效率,还是感谢了
[ Last edited by sylovanas on 2008-3-17 at 01:34 AM ]
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正