[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样替换文本里空格为逗号?

本帖最后由 hkxinghu 于 2011-9-28 12:39 编辑

文本里包括多列  每列都是不规则的空格分隔 想把这些空格替换成一个,

1      11     1111               112
22   100   222      111111111
111  1      22        3333333

批处理后要的结果

1,11,1111,112
22,100,222,111111111
111,1,22,3333333

回复 21# awk


   首先还是感谢你的指点,谢谢。 是的,这方面的确是这样的,那就是搞不清楚,哪些东西在大括号内,哪些在大括号外,对于GAWK 中的PATTERN {ACTION}形式不是很清楚,有些教程上的形式又是GAWK [OPTION] '{PATTERN+ACTION}' {FILENAMES},对于哪些东西在大括号内,哪些在大括号外的,我还真是搞不清楚,能否指点迷津,谢谢。

TOP

回复 20# xslxslxsl


可以照搬UNIX上的教程,只需要注意双引号和单引号就行了,其它没啥区别。

TOP

本帖最后由 xslxslxsl 于 2011-9-30 13:35 编辑

回复 19# awk

原来是这样的啊,其实我还不是很清楚GAWK的用法,虽然这些天在往上看,可是就是不能很好的理解,毕竟在WINDOWS系统下的教材很少的,所以要再次谢谢你哦。关于这方面的问题,我今后也要多多向你请教,望能继续耐心指导,非常感谢。

TOP

回复 18# xslxslxsl


还有另外一种写法:
  1. gawk "BEGIN{OFS=\",\"}$1=$1" a.txt >b.txt
复制代码

TOP

回复 15# awk
哦,谢谢指点,原来是这样啊,也就是要用OFS的时候,这个v也要一起用的是不是啊?

TOP

回复 16# awk


    谢谢,还是不理解,就当是个公式强记吧

TOP

回复 14# FOR


设置OFS=,之后,需要对整行内容进行重组,$1=$1就是起到这个作用,你用$2=$2也行的。

TOP

回复 13# xslxslxsl


-v主要用来在awk里面引用外部变量,这里是用来设置OFS=,(输出时域分隔符设置成逗号)

TOP

3楼为什么要 $1=$1 呢?没有还不行。

TOP

回复 3# awk



    gawk -v中的v是什么意思啊?

TOP

  1. @echo off
  2. (for /f "delims=" %%a in (a.txt)do echo;&for %%b in (%%a)do set/p=%%b,)<nul
  3. pause
复制代码

TOP

本帖最后由 hkxinghu 于 2011-9-28 07:27 编辑

回复 2# CrLf


    感谢版主用手机写的批处理啊 ,第二个可以用。但是有个问题就是单独运行可以  用其他批处理CALL 调用他就不行 不知道什么原因呢
%1 @cmd /q /v /c"for /f "delims^=" %%a in (a.txt) do set str=%%a&(for /l %%b in (-9 1) do set str=!str:  = !)& >>result.txt echo !str: =,!"

TOP

回复 2# CrLf


没有看懂你这个是什么用法,能否给解释下
    set/p=%%b)<nul>b.txt

TOP

回复  hankerer


但是,行首本来就没有空白字符啊。
awk 发表于 2011-9-27 14:27



    哈。不知道为啥我复制到本地的记事本上就多了行首的空格。行首没空格的话只一句fr就够了。

TOP

返回列表