标题: [文本处理] 合并文件名到提取的数据中,并第一行加上标题(数据处理急需,谢谢大侠咯!) [打印本页]
作者: morerlee 时间: 2011-9-22 11:34 标题: 合并文件名到提取的数据中,并第一行加上标题(数据处理急需,谢谢大侠咯!)
我分别从1-0.txt,1-1-10.txt,1-1-15.txt,1-1-20.txt,1-1.txt,1-2-10.txt文件中分别提取了以Loss为关键词所在一行形成了a.txt,现要将文件名放在第一列,并删除非数据类字符,即删除或用空格代替C,tand ,C0,Ce,Tu,Loss,FOM,Vmax,V,保留小写字母v,然后在第一行加上标题文字,形成新文件b.txt.(PS:l因为文件很多,我只选其中一部分为例,10v这个小写的v最好不删除,间隔符有的是空格有的是制表符TAB)
a.txt文本如下:
C LOSS 0.0494
V C 41.13%(10v) tand 0.049 C0 Ce Tu Loss FOM Vmax
V C 49.52%(15v) tand 0.064 C0 Ce Tu Loss FOM Vmax
V C 56.78%(20v) tand 0.061 C0 Ce Tu Loss FOM Vmax
C LOSS 0.0464
V C 38.39%(10v) tand 0.048 C0 Ce Tu Loss FOM Vmax
b.txt文本如下:
filename Tu L
1-0.txt 0.0494
1-1-10.txt 41.13%(10v) 0.049
1-1-15.txt 49.52%(15v) 0.064
1-1-20.txt 56.78%(20v) 0.061
1-1.txt 0.0464
1-2-10.txt 38.39%(10v) 0.048
作者: morerlee 时间: 2011-9-22 15:00
echo filename Tu L >1.txt
copy 1.txt+a.txt b.txt
加标题的方法已经找到
作者: hfg1977 时间: 2011-9-23 12:11
本帖最后由 hfg1977 于 2011-9-23 12:13 编辑
水平有限,只能分两次提取, test code 如下:- sed -n "/\<Loss\>/ s/.*[ ]\([0-9]\{1,\}\.[0-9]\{1,\}\%%([0-9]\+v)\).*[ ]\([0-9]\{1,\}\.[0-9]\{1,\}\).*/\t\1\t\2/p" a.txt
- sed -n "/\<LOSS\>/ s/.*[ ]\([0-9]\{1,\}\.[0-9]\{1,\}\).*/\t\t\t\1/p" a.txt
复制代码
完整过程如下: 一次完成全部工作- @echo off
- echo.filename Tu L >b.txt
- for /f "tokens=* delims=" %%a in ('dir /a-d/s/b "*.txt"') do (
- sed -n "/\<Loss\>/ s/.*[ ]\([0-9]\{1,\}\.[0-9]\{1,\}\%%([0-9]\+v)\).*[ ]\([0-9]\{1,\}\.[0-9]\{1,\}\).*/%%~nxa\t\1\t\2/p" "%%~a"
- sed -n "/\<LOSS\>/ s/.*[ ]\([0-9]\{1,\}\.[0-9]\{1,\}\).*/%%~nxa\t\t\t\1/p" "%%~a"
- )>>b.txt
- :end
复制代码
作者: hfg1977 时间: 2011-9-23 17:09
在后面的帖子 有看到LZ问这个问题,
http://bbs.bathome.net/thread-14089-1-1.html
为什么不在一个帖子里解决?
不会这么多天还没搞定吧?
作者: morerlee 时间: 2011-9-25 19:17
本帖最后由 morerlee 于 2011-9-25 19:18 编辑
回复 4# hfg1977
是同一个类型的处理,这个帖子是后发的,之前没想到要加文件名进来,后来发现提取后形成的新文件排序有问题,不能每个都对应好,才想到排序,现在解决了文件名跟数据对应,可是不能很好的按文件名来排列数据
主要想解决排序问题
你写的代码测试不能用,说是“sed”不是内部或外部命令,我是新手,有些看不懂,呵呵~
作者: awk 时间: 2011-9-25 19:25
回复 5# morerlee
先去下载一个sed.exe吧
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |