标题: [文本处理] [已解决]批处理怎样删除文本中的*星号? [打印本页]
作者: liht1024 时间: 2011-3-29 10:56 标题: [已解决]批处理怎样删除文本中的*星号?
本帖最后由 pcl_test 于 2016-9-13 15:56 编辑
我有许多文本文件,每一个文本文件中都有许多*号,想求一批处理,删除文本中的*号,并直接保存在原文件而不形成新文件,谢谢!
作者: Batcher 时间: 2011-3-29 14:35
复制代码
作者: liht1024 时间: 2011-3-29 16:03
谢谢Batcher,删除星号是没有问题,不过这个代码还有一个小缺点,就是把所有行也合并成了一行。谢谢!
作者: Batcher 时间: 2011-3-29 18:56
3# liht1024
我用的sed 4.1.4 + Vista SP2,没有任何问题。
作者: liht1024 时间: 2011-3-30 10:06
本帖最后由 liht1024 于 2011-3-30 10:08 编辑
谢谢Batcher,可能是我没说清楚,我是在sed4.0.7+xp sp3 下运行。我用10个文件(每个文件的内容为多行)试了一下,结果是每个文件中的星号删除了,但每个文件的内容都变成了一行。
作者: Batcher 时间: 2011-3-30 12:26
5# liht1024
换成4.1.4试试吧
http://bbs.bathome.net/thread-1114-1-1.html
作者: liht1024 时间: 2011-3-30 12:54
谢谢Batcher,用4.1.4就好了。
作者: pcl_test 时间: 2016-9-13 16:03
- //&cls&dir /a-d/b *.txt|cscript -nologo -e:jscript "%~f0"&pause&exit
-
- var fso = new ActiveXObject('Scripting.FileSystemObject');
- while(!WSH.StdIn.AtEndOfStream){
- var line = WSH.StdIn.ReadLine();
- var f = fso.OpenTextFile(line, 1);
- var text = f.ReadAll().replace(/\*/g, '');
- f.Close();
- //覆盖写入源文件
- fso.OpenTextFile(line, 2).Write(text);
- }
- WSH.echo('Done');
复制代码
作者: pcl_test 时间: 2016-9-13 16:14
本帖最后由 pcl_test 于 2016-9-13 16:17 编辑
- #*第三方http://www.bathome.net/s/tool/index.html?key=gawk
- #*&cls&dir /a-d/b *.txt|gawk -f "%~f0"&pause&exit
-
- BEGIN{
- while(getline file>0){
- s="";
- while(getline<file>0){
- gsub(/\*/,"");
- s=s""$0"\n";
- }
- close(file);
- printf s>file;
- }
- }
- END{print "Done"}
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |