中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 23:14
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]关于文件分割与合并 查看 1,015 回复 5
楼 主 [求助]关于文件分割与合并 发表于 2010-01-18 00:07 ·  中国 四川 泸州 联通
高级用户
★★★
积分 609
发帖 374
注册 2006-08-02 22:38
20年会员
UID 59720
状态 离线
有文件a.txt,文件中有很多很多行.
要求每16行合并为1行,输出到b.txt
谢谢先

[ Last edited by ZJHJ on 2010-1-18 at 08:48 ]
2 发表于 2010-01-18 12:38 ·  中国 重庆 沙坪坝区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线

gawk "{if(NR%16!=0)ORS=\" \";else ORS=\"\n\";print $0}" a.txt >b.txt
3 发表于 2010-01-18 13:26 ·  中国 北京 中电华通通信有限公司
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
18年会员
UID 116706
性别 男
状态 离线
如果要剔除空行的话,还是用CMD的变量好。
┏━━━━━━┓
┃据说是李先生┃
┠──────┨
┃*ntRSS┃
┗━━━━━━┛
4 发表于 2010-01-18 16:07 ·  中国 四川 广元 联通
高级用户
★★★
积分 609
发帖 374
注册 2006-08-02 22:38
20年会员
UID 59720
状态 离线
Originally posted by HAT at 2010-1-18 12:38:

gawk "{if(NR%16!=0)ORS=\" \";else ORS=\"\n\";print $0}" a.txt >b.txt

谢谢HAT版主,gawk是第三工具吗?
5 发表于 2010-01-18 23:00 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
6 发表于 2010-01-25 16:34 ·  中国 北京 朝阳区 电信
新手上路
积分 1
发帖 1
注册 2010-01-22 15:50
16年会员
UID 159250
性别 女
状态 离线
@echo off
set num=0
setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%i in (a.txt) do (
set /a num+=1
set str=!str! %%i
if !num! equ 16 echo !str! >>b.txt&& set num=0 & set str=
)
if not "%str%"=="" echo %str%
pause
论坛跳转: