标题: [文本处理] 【已解决】批处理如何将两字符串之间的空格变为逗号? [打印本页]
作者: sweet惜缘 时间: 2016-1-6 16:22 标题: 【已解决】批处理如何将两字符串之间的空格变为逗号?
我的$NR.txt文件内容如下:
DB00175 BE0000574
DB00177 BE0000062
DB00178 BE0000221
DB00190 BE0002151
DB00191 BE0000486 BE0000749 BE0000647 BE0002198 BE0002196
DB00193 BE0000770 BE0000486 BE0000749 BE0000533 BE0000632 BE0000420 BE0000641
希望经过处理后的out.txt内容如下(第一列与第二列之间的空格不动,行与行之间的空格也不动)
DB00175 BE0000574
DB00177 BE0000062
DB00178 BE0000221
DB00190 BE0002151
DB00191 BE0000486,BE0000749,BE0000647,BE0002198,BE0002196
DB00193 BE0000770,BE0000486,BE0000749,BE0000533,BE0000632,BE0000420
自己看了好一会正则表达式~只能实现全部转化,批处理水平实在太低啦,求大神解答~~~灰常感谢
作者: gawk 时间: 2016-1-6 17:47
你这个文件行与行之间没有空格,你看到的“空格”实际上是每一行的行尾有大量的tab导致编辑器在显示的时候换行了,你确定一下是否需要保留行尾的那么多tab吧。
作者: CrLf 时间: 2016-1-6 17:49
本帖最后由 CrLf 于 2016-1-6 20:04 编辑
- @mshta http://bathome.net/s/hta/^
- type('$NR.txt')^
- .split('\r\n')^
- ._EACH(function(s){flag=0;return s.replace(/\s+(?=\w)/g,function(ss){return flag++?',':' '})})^
- .join('\r\n')^
- >$NR.new.txt
复制代码
作者: sweet惜缘 时间: 2016-1-6 18:18
回复 3# CrLf
。。。结果出来没有变化,是哪里出现问题了呢??感谢
作者: sweet惜缘 时间: 2016-1-6 18:22
回复 2# gawk
额,原来是这样~~我只需要保证每一行还是一行~不要处理后170+行变成一行就郁闷了~~~请问大神应该怎么做~~~
作者: CrLf 时间: 2016-1-6 20:05
回复 4# sweet惜缘
之前没看你的文件,只按顶楼的空格处理,所以没效果,已修改
作者: pcl_test 时间: 2016-1-6 20:34
本帖最后由 pcl_test 于 2016-1-6 20:43 编辑
- //&cls&cscript -nologo -e:jscript "%~f0"<$NR.txt>New_$NR.txt&pause & exit/b
-
- while(!WScript.StdIn.AtEndOfStream) {
- var str = WScript.StdIn.ReadLine().replace(/(\w+)\s+(.+?)\s*$/,function($0,$1,$2){
- return $1+' '+$2.replace(/\s+(?=\w)/g,',')
- });
- WSH.Echo(str);
- }
复制代码
作者: sweet惜缘 时间: 2016-1-6 21:40
回复 7# pcl_test
感谢大神~~~已解决~~~能否帮我看一下最新的那个提问~~~~灰常感谢~~
PS:你哪人~请你吃饭吧~~if 你在西安的话~~~
作者: sweet惜缘 时间: 2016-1-6 21:40
回复 6# CrLf
感谢~~~辛苦啦~~~
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |