标题: [文本处理] 【已解决】BAT批处理如何批量整理txt文本数据? [打印本页]
作者: 思想之翼 时间: 2014-2-4 21:20 标题: 【已解决】BAT批处理如何批量整理txt文本数据?
本帖最后由 思想之翼 于 2014-2-5 14:37 编辑
有若干txt文本,记录格式如下:
温湿度变化: 4592670138
变化值次数: 4 3 3 2 2 2 1 1 1 1
欲批量删除文本内的文字,仅保留数据,格式变更如下:
4 5 9 2 6 7 0 1 3 8
4 3 3 2 2 2 1 1 1 1
这样的代码如何写?恳望得到帮助。
作者: DAIC 时间: 2014-2-5 09:40
- sed -r "s/.*: //; s/./& /g; s/ +/ /g" a.txt
复制代码
作者: apang 时间: 2014-2-5 11:50
- @set @n=0;//&dir /b *.txt|cscript -nologo -e:jscript "%~0" & pause&exit/b
- fso = new ActiveXObject("Scripting.FileSystemObject");
- while (!WSH.StdIn.AtEndOfStream) {
- f = WSH.StdIn.ReadLine();
- txt = fso.OpenTextFile(f,1).ReadAll();
- txt = txt.replace(/.*: *((\d *)+)$/mg,
- function(s,s1) {return s1.replace(/(.) */g," $1").substr(1)}
- );
- fso.OpenTextFile(f,2).Write(txt);
- }
复制代码
作者: terse 时间: 2014-2-5 12:21
sed- @sed -ri "s/[^0-9]*([0-9])[^0-9]*/\1 /g" *.txt
复制代码
作者: apang 时间: 2014-2-5 12:22
再来个纯批- @echo off & setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /a-d /b *.txt') do (
- (for /f "usebackq tokens=2 delims=:" %%a in ("%%i") do (
- set "s=%%a"
- set "s=!s: =!"
- for /l %%b in (0 1 9) do set "s=!s:%%b= %%b!"
- echo,!s:~1!
- ))>$
- move $ "%%i"
- )
- pause
复制代码
作者: 思想之翼 时间: 2014-2-5 14:24
完美解决问题。感谢楼上各位老师的鼎力帮助!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |