标题: [文本处理] 【已解决】批处理读取文本指定内容行如何不受文本中NUL(\x00)控制字符的影响? [打印本页]
作者: imhere 时间: 2016-6-23 21:03 标题: 【已解决】批处理读取文本指定内容行如何不受文本中NUL(\x00)控制字符的影响?
因为工作原因,使用的某一软件生成的计算结果中出现了空位NUL字符(\x00),而我想写一个batch脚本将其中关心的内容挑选出来,无奈尝试过网上无数脚本,每一个都是遇到空位字符即认为文本结束,没有一个能将我想提取的内容提取出来。大牛们有没有好的解决方案?
文本样例截图展示
这里有想读取的样例文本
经测试,网上的脚本读到第5行即退出。后面的许多结果根本读不出来(这里是我自己仿制的样例,实际文本1000+行)
我想筛选的结果大概是(以样例为例):
如果质子数(PROTON)是1,我只需要中子数(NEUTRON)为1和2,也就是氢和氘,两个核素的含量(CONTENT);如质子数是3,我只关心中子数为3的锂同位素的含量。诸如此类。
作者: WHY 时间: 2016-6-23 21:38
sed.exe- sed -r "s/\x00//g" product.txt > a.txt
复制代码
- PowerShell -c "(type product.txt) -replace '\x00'| Out-File a.txt -Encoding ascii"
复制代码
作者: imhere 时间: 2016-6-23 22:27
本帖最后由 pcl_test 于 2016-6-24 00:41 编辑
回复 2# WHY
大侠,你太帅了!多谢!
作者: pcl_test 时间: 2016-6-24 00:32
more product.dat>new_product.dat
findstr . new_product.dat&pause
作者: pcl_test 时间: 2016-6-24 00:41
findstr /r /c:"^ *1 *1 *" /c:"^ *1 *2 *" /c:"^ *3 *3 *" product.dat&pause
作者: imhere 时间: 2016-6-24 00:59
本帖最后由 pcl_test 于 2016-6-24 12:41 编辑
回复 5# pcl_test
非常感谢,但是新生成的文件有空行,空行数目==NUL占位符数目,如果能去掉空行就完美了。
不过,现在已经可以进一步检索需要的信息了。
作者: imhere 时间: 2016-6-24 01:02
回复 5# pcl_test
对了,版主,我是新人,这是第二贴(报到贴是第一个),哪里做错了吗?
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |