中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-21 23:57
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 出题:整理文本 (新手老鸟都来试试) 查看 6,072 回复 54
46 发表于 2008-07-15 15:05 ·  中国 湖北 武汉 联通
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
按照change的思路,那么sed就可以这样改进一下了
sed ":nt; $!{N; s/\n//; tnt}; s/。/&\n\n/g" myfile.txt
47 发表于 2008-07-15 15:29 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
Originally posted by lxmxn at 2008-7-15 15:05:
按照change的思路,那么sed就可以这样改进一下了
sed ":nt; $!{N; s/\n//; tnt}; s/。/&\n\n/g" myfile.txt

是可以,但如果文件太大的话就不行了吧,模式空间能容纳太多内容吗?
致精致简!
48 发表于 2008-07-15 15:44 ·  中国 湖北 武汉 联通
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
Originally posted by 26933062 at 2008-7-15 15:29:

是可以,但如果文件太大的话就不行了吧,模式空间能容纳太多内容吗?

嗯,文件大了估计就不成了。

刚才试了一下,10K以下的文件处理起来还是比较快的,但是到了50K以上就比较慢了,过兆的文件就不适合了。
49 发表于 2008-07-16 08:20 ·  中国 山西 电信
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
22年会员
UID 19350
性别 男
状态 离线
回45楼
这是我的执行结果
除了改动了测试文件路径
其它没有变
cd.>d\c.txt这句不是必须的


批处理文件(Batch File,简称 BAT文件)是 YYY 种在DOS
下最常用的可执行文件。它具有灵活的操纵性,可适应各
种复杂的计算机操作。所谓的批处理,就是按规定的顺序
自动执行若干个指定的DOS命令或程序。
即是把原来 YYY 个 YYY 个执行的命令汇总起来,成批的执行,而程序文件可
以移植到其它电脑中运行,因此可以大大节省命令反复输
入的繁琐。同时批处理文件还有一些编程的特点
。可以通过扩展参数来灵活的控制程序的执行,所以在日
常工作中非常实用。批处理。bat。cmd。尺有所短。寸有所长。
50 发表于 2008-07-16 10:25 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
Originally posted by qzwqzw at 2008-7-16 08:20:
回45楼
这是我的执行结果
除了改动了测试文件路径
其它没有变
cd.>d\c.txt这句不是必须的


总算试出来了,原来是n后面不能有那个斜杠。。
change f:\111\d\a.txt /nf:\111\d\c.txt /from "nnn" /to " yyy " /in not "。"

qzwqzw 兄,你那里可以有斜杠吗?
致精致简!
51 发表于 2008-07-16 13:27 ·  中国 江西 南昌 电信
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
22年会员
UID 19350
性别 男
状态 离线
看来你对相对路径和绝对路径缺乏足够的了解
前缀的\指代当前盘的根

很显然
因为你的数据文件不在当前盘
所以导致出错
52 发表于 2008-07-16 14:16 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
是,对相对路径,一直是模模糊糊的。。。
原来如此。。!
致精致简!
53 发表于 2008-09-25 21:20 ·  中国 辽宁 沈阳 电信云计算机项目(百科合作IDC)
初级用户
积分 20
发帖 9
注册 2008-09-10 11:07
17年会员
UID 125296
性别 男
状态 离线
长见识了
54 发表于 2008-09-25 21:45 ·  中国 江苏 苏州 电信
初级用户
★★
积分 195
发帖 93
注册 2006-10-28 08:20
19年会员
UID 68626
性别 男
状态 离线
其实awk处理这类问题很方便的。。只是很多人先入为主了

BEGIN {RS="。"}
{
gsub (/\n/,"")
print $0"。"}

老规矩,本人只用代码
55 发表于 2010-01-02 10:45 ·  中国 福建 福州 电信
初级用户
★★
积分 119
发帖 59
注册 2008-11-21 14:07
17年会员
UID 131656
性别 男
状态 离线
不知道 change 支持通配符不
论坛跳转: