Board logo

标题: [文本处理] 批处理怎么一篇文章把每个字之间加上空格符? [打印本页]

作者: nnnn111    时间: 2011-10-3 09:35     标题: 批处理怎么一篇文章把每个字之间加上空格符?

本帖最后由 nnnn111 于 2011-10-5 15:35 编辑

例如,tttt
变成,t t t t
作者: Batcher    时间: 2011-10-3 10:58

在顶楼给点内容做测试吧
作者: FOR    时间: 2011-10-3 13:28

  1. gawk -v FS="" "{$1=$1;print}" a.txt
复制代码
  1. gawk "BEGIN{FS=\"\"}{$1=$1;print}" a.txt
复制代码

作者: BAT1    时间: 2011-10-3 13:40

一篇10MB的文章?(以内)
带有括号、感叹号、等特殊符号,还要用纯P,速度还要快,能在30秒内完成?
作者: cjiabing    时间: 2011-10-3 16:09

难。还三十秒,一分钟能完成已经不错了。
通常见到的办法都是一个一个字的处理,非常费时间。
除非有其他比较巧妙点的办法。
作者: xslxslxsl    时间: 2011-10-3 16:33

  1. @echo off
  2. gawk -F "" "{$1=$1;print}" a.txt
  3. pause
复制代码

作者: awk    时间: 2011-10-5 17:56

回复 3# FOR
  1. gawk -F "" "$1=$1" a.txt
复制代码

作者: awk    时间: 2011-10-5 17:56

回复 6# xslxslxsl


不用写print,见7楼。
作者: FOR    时间: 2011-10-5 18:50

回复 7# awk

简洁,但是晦涩,对我这个新手来说更晕了。
作者: awk    时间: 2011-10-5 23:58

回复 9# FOR


它的语法里面不是分为pattern、action什么的几块吗,记住默认的action是print $0就行了。
啥时候想些print $0或者print,先考虑一些能否使用默认action
作者: zaixinxiangnian    时间: 2011-10-6 16:41

用P做不到吗?批不可以逐字读取?
作者: awk    时间: 2011-10-6 16:58

回复 11# zaixinxiangnian


可以做到:
  1. @echo off
  2. (for /f "delims=" %%a in (a.txt) do (
  3.     call :AddBlank "%%a"
  4. ))>b.txt
  5. goto :eof
  6. :AddBlank
  7. setlocal enabledelayedexpansion
  8. set "str=%~1"
  9. set n=0
  10. :loop
  11. set t=!str:~%n%,1!
  12. if "!t!" neq "" (
  13.     set /p =!t! <nul
  14.     set /a n+=1
  15.     goto :loop
  16. ) else (
  17.     echo,
  18. )
  19. endlocal
复制代码

作者: xslxslxsl    时间: 2011-10-8 12:30

回复 8# awk


    谢谢指点,这个print写上去是不是也可以啊?




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2