[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】批处理读取文本指定内容行如何不受文本中NUL(\x00)控制字符的影响?

因为工作原因,使用的某一软件生成的计算结果中出现了空位NUL字符(\x00),而我想写一个batch脚本将其中关心的内容挑选出来,无奈尝试过网上无数脚本,每一个都是遇到空位字符即认为文本结束,没有一个能将我想提取的内容提取出来。大牛们有没有好的解决方案?

文本样例截图展示

这里有想读取的样例文本

经测试,网上的脚本读到第5行即退出。后面的许多结果根本读不出来(这里是我自己仿制的样例,实际文本1000+行)

我想筛选的结果大概是(以样例为例):
如果质子数(PROTON)是1,我只需要中子数(NEUTRON)为1和2,也就是氢和氘,两个核素的含量(CONTENT);如质子数是3,我只关心中子数为3的锂同位素的含量。诸如此类。
1

评分人数

sed.exe
  1. sed -r "s/\x00//g" product.txt > a.txt
复制代码
  1. PowerShell -c "(type product.txt) -replace '\x00'| Out-File a.txt -Encoding ascii"
复制代码
1

评分人数

TOP

本帖最后由 pcl_test 于 2016-6-24 00:41 编辑

回复 2# WHY

大侠,你太帅了!多谢!

TOP

more product.dat>new_product.dat
findstr . new_product.dat&pause

TOP

findstr /r /c:"^ *1 *1 *" /c:"^ *1 *2 *" /c:"^ *3 *3 *" product.dat&pause

TOP

本帖最后由 pcl_test 于 2016-6-24 12:41 编辑

回复 5# pcl_test
非常感谢,但是新生成的文件有空行,空行数目==NUL占位符数目,如果能去掉空行就完美了。
不过,现在已经可以进一步检索需要的信息了。

TOP

回复 5# pcl_test

对了,版主,我是新人,这是第二贴(报到贴是第一个),哪里做错了吗?

TOP

返回列表