我正在尝试使用MS-DOS命令“findstr”来查找字符串并从文件中删除它。
目前,我可以找到一个明确的字符串,但是我真的很难处理正则表达式。 文件类似于以下内容:
PLs - TULIP Report
Output_Format, PLS - TULIP REPORT
NUMLINES, 110907
VARIABLE_TYPES,T1,T8,I,T9,T2,N,N,N
[[data below]]
该文件是从某个系统导出的,非常恼人的是它有一个标题 - 所以在使用SQL Loader将其导入Oracle数据库之前,我想先进行清理。
不止一个文件,所有文件都会有相同类型的标题,但每个文件略微不同。虽然我很乐意使用硬编码值先删除前两行,例如:
findstr /v "PLs - TULIP Report" "c:\myfiles\file1.PRO" > "c:\myfiles\file1.csv"</code><br>
findstr /v "Output_Format, PLS - TULIP REPORT" "c:\myfiles\file1.csv" > "c:\myfiles\file2.csv"
(请注意,我用了两个步骤来完成这个过程 - 如果您有任何建议可以在一步中完成,请大力提出)
对于我来说,第三行更加复杂,它将始终以这种格式存在:
NUMLINES, 110907
除了每个文件末尾的数字不同,这一整行都相同。所以我该如何使用正则表达式找到这整行呢?我已经尝试过:
findstr /v /b /r "\D+ \s+ \d+"
但是没有任何运气。
顺便提一下,[[data below]]
中的数据如下所示
*,"00000161",456823,"017896532","FU",23.95,3.34,20.61
等等...
显然,我不想修改数据区。
我希望以上内容有意义,
谢谢
code
VARIABLE_TYPES,T1,T8,I,T9,T2,N,N,N/code
... 而圣杯是要一次性完成所有这些行! :) ... 或者,我也在尝试使用MORE命令,因为总是需要删除文本文件的前4行,所以我认为它是一个不错的选择,但它非常慢,而且由于某种原因它还挂起了。 - leroyb