Board logo

标题: 超长行文本如何使用替换 [打印本页]

作者: bd123456789     时间: 2007-7-6 10:22    标题: 超长行文本如何使用替换

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

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

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)

作者: lxmxn     时间: 2007-7-6 11:22

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

作者: bd123456789     时间: 2007-7-6 17:31
不知道是什么原因造成的
你的回答也是一种解决办法,但我想要在CMD下实现
另外,真没有其它办法了吗???
作者: lxmxn     时间: 2007-7-7 15:58
用cmd自带的命令解决很困难,因为cmd对命令行的长度有限制,一般是2048个字符(如果没记错的话),所以你的文本超过了这个数目就会不处理或者出错。

另外,为何不用sed或者awk呢?
作者: bd123456789     时间: 2007-7-8 11:47


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

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

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