标题: [文本处理] 批处理怎么一篇文章把每个字之间加上空格符? [打印本页]
作者: 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
- gawk -v FS="" "{$1=$1;print}" a.txt
复制代码
- 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
- @echo off
- gawk -F "" "{$1=$1;print}" a.txt
- pause
复制代码
作者: awk 时间: 2011-10-5 17:56
回复 3# FOR 复制代码
作者: 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
可以做到:- @echo off
- (for /f "delims=" %%a in (a.txt) do (
- call :AddBlank "%%a"
- ))>b.txt
- goto :eof
-
- :AddBlank
- setlocal enabledelayedexpansion
- set "str=%~1"
- set n=0
- :loop
- set t=!str:~%n%,1!
- if "!t!" neq "" (
- set /p =!t! <nul
- set /a n+=1
- goto :loop
- ) else (
- echo,
- )
- endlocal
复制代码
作者: xslxslxsl 时间: 2011-10-8 12:30
回复 8# awk
谢谢指点,这个print写上去是不是也可以啊?
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |