中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 超长行文本如何使用替换 上一主题 | 下一主题
bd123456789
中级用户





积分 360
发帖 216
注册 2007-5-29
状态 离线
『楼 主』:  超长行文本如何使用替换

我有一个文本文件,在附件中
其中一行是超长文本

我编写了如下代码:
目的想将文本中的所有空格替换成*号

setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (123.txt) do (
set var=%%i
set "var=!var: =*!"
echo !var!>>456.txt
)

我在其它一些小的文本中,能够顺利通过
但123文本中发现,原文件大小120多KB
导出的文本却只有15KB?
说明有部分文本没有被读取,或者说被丢掉??有什么好的解决办法吗?

附件 1: 123.rar (2007-7-6 10:22, 22.79 K,下载次数: 8)
2007-7-6 10:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


sed "s/ /*/g" yourfile.ext


2007-7-6 11:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bd123456789
中级用户





积分 360
发帖 216
注册 2007-5-29
状态 离线
『第 3 楼』:  

不知道是什么原因造成的
你的回答也是一种解决办法,但我想要在CMD下实现
另外,真没有其它办法了吗???

2007-7-6 17:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  

用cmd自带的命令解决很困难,因为cmd对命令行的长度有限制,一般是2048个字符(如果没记错的话),所以你的文本超过了这个数目就会不处理或者出错。

另外,为何不用sed或者awk呢?

2007-7-7 15:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bd123456789
中级用户





积分 360
发帖 216
注册 2007-5-29
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by lxmxn at 2007-7-7 03:58 PM:
用cmd自带的命令解决很困难,因为cmd对命令行的长度有限制,一般是2048个字符(如果没记错的话),所以你的文本超过了这个数目就会不处理或者出错。

另外,为何不用sed或者awk呢?

多谢多谢
我测试了一下
当文件大小在10K左历,能够正常替换,说明CMD对命令行长度限制不是2048,而是在10000多个字节!!
不知道为什么微软对此不作介绍,或者说明
呵呵

2007-7-8 11:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: